JavaScript 是使用“对象化编程”的,或者叫“面向对象编程”的。所谓“对象化编程”,意思是把 JavaScript 能涉及的范围划分成大大小小的对象,对象下面还继续划分对象直至非常详细为止,所有的编程都以对象为出发点,基于对象。小到一个变量,大到网页文档、窗口甚至屏幕,都是对象。这一章将“面向对象”讲述 JavaScript 的运行情况。
对象的基本知识
对象是可以从 JavaScript“势力范围”中划分出来的一小块,可以是一段文字、一幅图片、一个表单(Form)等等。每个对象有它自己的属性、方法和事件。对象的属性是反映该对象某些特定的性质的,例如:字符串的长度、图像的长宽、文字框(Textbox)里的文字等等;对象的方法能对该对象做一些事情,例如,表单的“提交”(Submit),窗口的“滚动”(Scrolling)等等;而对象的事件就能响应发生在对象上的事情,例如提交表单产生表单的“提交事件”,点击连接产生的“点击事件”。不是所有的对象都有以上三个性质,有些没有事件,有些只有属性。引用对象的任一“性质”用“<对象名>.<性质名>”这种方法。
基本对象
现在我们要复习以上学过的内容了——把一些数据类型用对象的角度重新学习一下。
Number “数字”对象。这个对象用得很少,作者就一次也没有见过。不过属于“Number”的对象,也就是“变量”就多了。
属性String 文字列オブジェクト。文字列オブジェクトを宣言する最も簡単、迅速、効果的で一般的に使用される方法は、文字列オブジェクトを直接割り当てることです。
MAX_VALUE 使用法: Number.MAX_VALUE; 「最大値」を返します。
MIN_VALUE 使用法: Number.MIN_VALUE; 「最小値」を返します。
NaN 使用法: Number.NaN または NaN は「NaN」を返します。 「NaN」(非数)は非常に早い段階で導入されました。
NEGATIVE_INFINITY 使用法: Number.NEGATIVE_INFINITY; 戻り値: 負の無限大、「最小値」より小さい値。
POSITIVE_INFINITY 使用法: Number.POSITIVE_INFINITY; 戻り値: 正の無限大、「最大値」より大きい値。
メソッド
toString() 使用法: <数値変数>.toString(); 戻り値: 文字列形式の数値。例: a == 123; の場合、a.toString() == '123'。
属性Array 配列オブジェクト。配列オブジェクトはオブジェクトのコレクションであり、内部のオブジェクトはさまざまなタイプにすることができます。配列の各メンバー オブジェクトには、配列内での位置を示すために使用される「添え字」があります (これは「位置」であるため、ゼロから始まります)。
length 使用法:.length; 文字列の長さを返します。
メソッド
charAt() 使用法:.charAt( ); 単一の位置にある文字列を返します。ビットの性格。注: 文字列内の 1 つの文字は位置 0 にあり、2 番目の文字は位置 1 にあり、最後の文字は位置長 - 1 にあります。
charCodeAt() 使用法:.charCodeAt( ); の位置にある 1 文字の ASCII コードを返します。
fromCharCode() 使用法: String.fromCharCode(a, b, c...); 各文字の ASCII コードが a、b、c... で構成される文字列を返します。必ず待ってください。
indexOf() 使用法: <文字列オブジェクト>.indexOf(<別の文字列オブジェクト>[, <開始位置>]); このメソッドは<別の文字列オブジェクト>を検索します。 ; 文字列オブジェクト> 内で ( が指定されている場合は、前の位置を無視します)、見つかった場合はその位置を返し、見つからなかった場合は「- 1」を返します。すべての「ポジション」はゼロから始まります。
lastIndexOf() 使用法:.lastIndexOf( [, ]); と似ていますが、後ろから見ていきます。 。
split() 使用法:.split( ); から区切られた配列を返します。ポイントであり、それ自体は返される配列には含まれません。例: '1&2&345&678'.split('&') は配列 1,2,345,678 を返します。配列については、後ほど説明します。
substring() 使用法:.substring( [, ]); 文字列はセグメントです。元の文字列の 位置から 位置の前の位置まで。 - = 文字列の長さ (length) を返します。 が指定されていないか、文字列の長さを超えている場合、部分文字列は の位置から元の文字列の末尾までが取得されます。指定された場所で文字列を返せない場合は、空の文字列が返されます。
substr() 使用法:.substr( [, ]); 文字列はセクションです。 位置から始まり、長さが の元の文字列。 が指定されていないか、文字列の長さを超えている場合、部分文字列は の位置から元の文字列の末尾までが取得されます。指定された場所で文字列を返せない場合は、空の文字列が返されます。
toLowerCase() 使用法:.toLowerCase(); 元の文字列の大文字をすべて小文字に変更した文字列を返します。
toUpperCase() 使用法:.toUpperCase(); 元の文字列の小文字をすべて大文字に変更した文字列を返します。
var = new Array();これは空の配列を定義します。今後配列要素を追加するには、次を使用します:
<配列名>[<添字>] = ...;ここでの角括弧は「省略可能」を意味するものではないことに注意してください。配列の添字は角括弧を使用して表現されます。 . 括弧で囲まれています。
var = new Array(例: var myArray = new Array( 1, 4.5 , 'Hi'); は配列 myArray を定義し、内部の要素は次のとおりです: myArray[0] == 1; myArray[2] == 'Hi'。, , ...);
var myArray = new Array(new Array(), new Array(), new Array(), ...);実際、これは 1 次元配列であり、各要素はそれは配列です。この「2 次元配列」の要素を呼び出す場合: myArray[2][3] = ...;
属性Math データの数学的計算を行う「数学」オブジェクト。以下で説明するプロパティとメソッドでは、「使用法」については詳しく説明しません。使用する場合は、「Math.
length 使用法:.length; 戻り値: 配列の長さ、つまり配列内の要素の数。これは、配列内の最後の要素のインデックスに 1 を加えたものと等しくなります。したがって、要素を追加したい場合は、myArray[myArray.length] = ... のようにするだけです。
メソッド
join() 使用法:.join( ); 配列内の要素が結合された文字列を返します。要素の間には を使用して配置されます。このメソッドは、配列の元の内容には影響しません。
reverse() 使用法:.reverse(); は、配列内の要素の順序を反転します。このメソッドを配列 [1, 2, 3] に対して使用すると、配列は [3, 2, 1] になります。
slice() 使用法:.slice( [, ]); で始まる元の配列のサブセットである配列を返します。 と で終わります。 が指定されていない場合は、元の配列の終わりまでサブセットが取得されます。
sort() 使用法:.sort([ ]); 配列内の要素を特定の順序で配置します。 が指定されていない場合は、アルファベット順が使用されます。この場合、80 は 9 よりも上位にランクされます。 を指定した場合は、 で指定されたソート方法でソートされます。 は説明が難しいので、ここでは便利な をいくつか紹介します。
数値を昇順に並べます:
function sortMethod(a, b) {数値を降順に並べ替えます: put上記の「a - b」は「b - a」になるはずです。
return a - b;
}
myArray.sort(sortMethod);
機能については以下をご覧ください。
プロパティ日付 日付オブジェクト。このオブジェクトは、0001 から 9999 までの任意の日付を保存でき、ミリ秒 (1/1000 秒) の精度を保つことができます。内部的には、日付オブジェクトは、1970 年 1 月 1 日の午前 0 時から、日付オブジェクトが指す日付までのミリ秒数を表す整数です。参照された日付が 1970 年より前の場合、それは負の数になります。タイム ゾーンが指定されていない場合、すべての日付と時刻には、数値的には「GMT」 (グリニッジ標準時) と同じである「UTC」 (世界時) タイム ゾーンが使用されます。
E 定数 e (2.718281828...) を返します。
LN2 2 の自然対数 (ln 2) を返します。
LN10 10 の自然対数 (ln 10) を返します。
LOG2E 2 を下位値とする e の対数 (log2e) を返します。
LOG10E 10 を下位とする e の対数を返します (log10e)。
PI π (3.1415926535...) を返します。
SQRT1_2 1/2 の平方根を返します。
SQRT2 2 の平方根を返します。
メソッド
abs(x) x の絶対値を返します。
acos(x) x の逆余弦 (余弦は x の角度に等しい) をラジアンで返します。
asin(x) x の逆正弦を返します。
atan(x) x の逆正接を返します。
atan2(x, y) 複素平面内の点 (x, y) に対応する複素数の引数をラジアンで返し、その値は -π から π までの間です。
ceil(x) x 以上の最小の整数を返します。
cos(x) x のコサインを返します。
exp(x) e の x 乗を返します (ex)。
floor(x) x 以下の最大の整数を返します。
log(x) x の自然対数 (ln x) を返します。
max(a, b) a, b のうち大きい方の数を返します。
min(a, b) a, b のうち小さい方の数値を返します。
pow(n, m) n の m 乗 (nm) を返します。
random() 0 より大きく 1 より小さい乱数を返します。
round(x) x の四捨五入された値を返します。
sin(x) x の正弦を返します。
sqrt(x) x の平方根を返します。
tan(x) x のタンジェントを返します。
var d = new Date;このメソッドは d を日付オブジェクトにし、初期値として現在時刻を持ちます。初期値をカスタマイズしたい場合は、次を使用できます:
var d = new Date(99, 10, 1); //1999 年 10 月 1 日など一番良い方法は、以下で紹介する「方法」を使って時間を厳密に定義することです。
var d = new Date('1999 年 10 月 1 日'); //1999 年 10 月 1 日
メソッド
以下の「g/set[UTC]XXX」のようなメソッドがたくさんありますが、これは「getXXX」メソッドと「setXXX」メソッドの両方が存在することを意味します。 「Get」はある値を取得すること、「set」はある値を設定することです。 「UTC」という文字がある場合は、取得/設定される値が UTC 時間に基づいていることを意味し、文字がない場合は、ローカル時間または閲覧期間のデフォルト時間に基づいていることを意味します。
特に記述がない場合、メソッドの使用形式は「
属性
NaN 早くも言いました。
メソッド
eval() 括弧で囲まれた文字列を標準のステートメントまたは式として操作します。
isFinite() 括弧内の数値が「有限」(Number.MIN_VALUE と Number.MAX_VALUE の間)の場合は true を返し、それ以外の場合は false を返します。
isNaN() 括弧内の値が「NaN」の場合は true を返し、それ以外の場合は false を返します。
parseInt() 括弧内の内容を整数に変換した値を返します。括弧が文字列の場合は、文字列の先頭の数値部分が整数に変換され、文字で始まる場合は「NaN」が返されます。
parseFloat() 括弧内の文字列を浮動小数点数に変換した値を返します。文字列の先頭の数値部分が文字で始まる場合は浮動小数点数に変換されます。 , 「NaN」が返されます。
toString() 使用法:
function 関数名 ([パラメータセット]) {where ,関数全体が 1 つの文しかない場合でも、関数の後と関数の最後に使用される中括弧は省略できません。
...
[return[];]
...
}
function addAll(a, b, c) {この例では、 「addAll」という関数が作成されます。この関数には、a、b、c の 3 つのパラメータがあります。その機能は、3 つの数値を加算した結果を返すことです。関数の外では、「var total = addAll(3, 4, 5);」を使用して関数の戻り値を受け取ります。
return a b c;
}
var total = addAll(3, 4, 5);
Attributes
arguments 外部プログラムが関数を呼び出すときに指定されたパラメーターを反映する配列。使用法: 関数内で直接「引数」を呼び出します。