/*
配列とオブジェクト [JavaScript の決定版ガイド、第 5 版]
*/
/*
オブジェクト: 順序付けされていない属性のセットです。属性 それぞれに独自の名前と値があります*/
/* オブジェクトを作成する簡単な方法、オブジェクトの直接数量*/
var obj = {}
var obj = {name: 'maxthon; '};
var obj = {name: {}, text: []};
/* 新しい演算子を使用できます*/
var a = new Array(); var d = new Date();
var r = new RegExp('javascript', 'i');
var o = new Object(); // var o = {};注: new 演算子の後にはコンストラクターが続くため、
typeof Array; // 'function'
Function のインスタンスです。
*/
/* オブジェクト属性*/
// 注: [] は、属性の値にアクセスするために使用します。
var t = {};
t.text = 'hello';
t.o = は同時に使用され、属性は Name 内で使用されます。 {};
t.o.name = 'rd';
t.n = [];
"テキスト": "こんにちは"
}; .log(t.text); // 'hello' ;
// 補足: 通常、キーワード var は変数の宣言に使用されますが、オブジェクトのプロパティを宣言する場合、var を使用して
/* オブジェクト列挙*/
var F = function () {};
F.prototype.name = 'RD';
var obj = new F; var key in obj) {
console.log(key) // name
}
// プロトタイプチェーンに沿って検索しないでください。 (obj の var key) {
if (obj.hasOwnProperty(key )) {
console.log(key) //
}
}
/* 注: for in はできません。事前定義されたプロパティを列挙します。 */
/* 属性の存在を確認します*/
window.a = 'rd';
console.log(a in window); // true;
var F = function () {};
F.prototype.name = 'RD';
var obj = new F; ' in obj); // true;
var toString = Object.prototype.toString;
// オブジェクト obj に getName メソッドが含まれている場合は、それを実行します。 if (obj.getName && toString.call(obj.getName ) === '[オブジェクト関数]') ) {
obj.getName();
}
// 補足:
console.log(null == 未定義); // true;
console.log(null !== 未定義) //
/* 属性を削除します。 🎜>delete obj.name;
// 補足: delete 演算子を使用すると、var で宣言された変数は削除できません。
/* 連想配列としてのオブジェクト*/
// オブジェクトの属性を取得します:
obj.name ;
obj['name']; // ここで name は文字列です。 [] を使用して表現すると、属性名は次のようになります。
// 操作中に操作を追加します。
// 注: このプロパティは、
// 連想配列
/* マッピング: JavaScript オブジェクト ハンドル文字列 (属性名) が値にマッピングされます。 */
for (var key in obj) {
console.log(key);
}
/*
共通のオブジェクトのプロパティとメソッド
JavaScript のすべてのオブジェクトは Object クラスから継承されます。 🎜>
1、コンストラクター属性。
*/
var F = function () {};
var f = new F; (f.constructor == F); // true
// コンストラクターのプロトタイプには、それ自体を指す属性コンストラクターがあります。 >// 補足:
var F = function () {};
G.prototype = new F;
var g = new G ;
console.log(g.constructor == F); // true;
console.log(g.constructor == G); // g インスタンスを使用できます。 ;
/*
2, toString() メソッド
*/
{'name': 'maxthon'}.toString(); // '[オブジェクト オブジェクト] '
/* 配列は toString メソッドを使用し、要素を文字列に結合すると、他のオブジェクトは [object Object] に変換されます。
関数は元の toString メソッドを使用し、関数のソース コードは次のようになります。取得*/
['a', 'b', 1, false, [' e','f'], {}].toString()// "a,b,1, false,e,f,[object オブジェクト]"
function t() {
console.log('test');
}
t.toString();
// ソース コード
/*
3, toLocalString();
オブジェクトのローカライズされた文字列を返します
4、valueOf()は、 valueOf/toString;
6, propertyIsEnumberable();
7,
a.isPrototyeOf( b);
a が b のプロトタイプの場合、true を返します。
* /
var o = {}; true;
Object.isPrototyeOf(o); // false;
関数.isPrototyeOf(Object); >
/* [関数インスタンスが存在する場合、クロージャが存在します。ガベージがリサイクルされない場合、代入参照が存在します。] */
/*
配列: 順序付けされたコレクション。値;
各値は、要素とも呼ばれ、添字に対応します。
添字は 0 から始まります。
配列内の値は、任意の型にすることができます。
*/
// 作成します。
var arr = [];
var t = ''; 🎜>var arr = [1,2,3、null、未定義、[]、{}, t];
/* new 演算子を使用して配列を作成する 3 つのケース: */
var arr = new Array() // []、直接量
var arr = new Array(5); // 長さは 5 です。
console.log(arr); // [] は未定義です。 >
var arr = new Array('5'); // 値は ['5'];
var arr = new Array('test'); ;
/* 関連例*/
var s = [1, 2, 3] = 'a'; 🎜>[ 1, 2, 3, 未定義, 未定義, 'a']
/* 配列の読み取りと書き込み*/
value = array[0] ;
a[1] = 3.14;
a[i] = 3; // 配列 -> 属性
array.test = 'rd';
// 配列の添字は 2 未満の整数です。
/ / 他の値の場合、JavaScript は文字列に変換され、添え字ではなくオブジェクト属性の名前として使用されます。 [];
array[9] = 10; // 配列の長さは 10 になります。
// 注: JavaScript インタープリターは、配列インデックス 9 の要素にのみメモリを割り当て、他のインデックスは割り当てません。
var array = [];
array.length = 10;
array[array.length] = 4; /* 配列要素を削除します*/
// 削除演算子 配列要素は未定義の値に設定されていますが、要素自体はまだ存在しています。
// 実際に削除するには、次のコマンドを使用します。 Array.shift(); [最初のものを削除] Array.pop(); [最後のものを削除] Array .splice(); [配列から連続した範囲を削除] または Array.length の長さを変更します。例*/
var a = [1, 2, 3];
delete a[1]
console.log(a); // [1, 未定義, 3]; 🎜>/* 補足: JavaScript 決定版ガイド、第 5 版、59 ページ
by var 宣言された変数は永続的です。つまり、これらの変数を削除するために delete 演算子を使用すると、エラーが発生します。 : 開発者ツールでは、Web ページでは、
*/
/* 配列の長さ*/
[] で説明されているように削除できます。 length;
/* 配列を走査*/
var array = [1, 2, 3, 4, 5];
for (var i = 0, l = array.長さ; i
console.log(array[i]);
array.forEach(関数 (項目, インデックス, arr) .log(item);
});
/* 配列: 前述のように正しい長さ*/
/* 多次元配列*/
[[ 1], [2]]
/* 配列メソッド*/
// join
var array = [1, 2, 3, 4, 5];
var str = array .join(); // 1,2,3,4,5
var str = array.join('-'); // 1-2-3-4-5
// 注:メソッドは String.split() メソッドの反対です。
// reverse() ;
var array = [1, 2, 3, 4, 5]; ; // [5, 4, 3, 2, 1]
// 注: 元の配列
// sort(); var array = [1, 3, 2, 4, 5, 3];
array.sort();// [1, 2, 3, 3, 4, 5]; 注: 配列内に未定義の要素があります。これらの要素を入れてください。最後に*/
/* 並べ替えをカスタマイズすることもできます。sort(func);
func は 2 つのパラメーターを受け取ります。最初のパラメーターが 2 番目のパラメーターの前にある必要がある場合、比較関数が返されます。 0 より小さい数値。逆に、0 より大きい数値を返します。等しい場合は、0 を返します。
* /
array.sort(function (a, b) {
return b - a;
});
// 例: 奇数から偶数へ、小さいものから大きいものへ並べ替えます
[1, 2, 3, 4, 5, 6, 7, 2, 4 , 5, 1].sort(function (a, b) {
if (a % 2 && b % 2) {
return a - b;
}
if (a % 2) {
return -1;
}
if (b % 2) {
return
}
return a - b; 🎜>
});
// concat() メソッド。深さは結合しません。Merge
var a = [1, 2, 3]; concat(4, 5); // [1, 2, 3, 4, 5]
a.concat([4, 5]) // [1, 2, 3, 4, 5]
; a.concat([4, 5], [8, 9]); // [1, 2, 3, 4, 5, 8, 9]
a.concat([4, 5], [6, [10, 19]]); // [1, 2, 3, 4, 5, 6, [10, 19] ]
// ソース配列はスライス() メソッドを使用しません。
var a = [1, 2, 3, 4, 5];
a.slice(0, 3) // [1, 2, 3]
a.slice(3); ; // [4, 5];
a.slice(1, -1); // [2, 3, 4]
a.slice(1, -1 5)
a.slice (1, 4);
a.slice(-3, -2); // [3]
a.slice(-3 5, -2 5); 3);
/* 注:
には、2 番目のパラメーターで指定された要素は含まれません。
負の値は、負の値の配列の長さ
*/
に変換されます。 // splice(pos[, len[, a, b]]) メソッド。指定した位置を削除した後、長さの要素を追加します。
// 削除された要素で構成される配列を返します。配列が変更されます。
var a = [1, 2, 3, 4, 5, 6, 7, 8]; // [ 5, 6, 7, 8];このとき a: [1, 2, 3, 4]
a.splice(1, 2); // このとき a: [1, 4 ]; splice(1, 1); // この時点では、
var a = [1, 2, 3, 4, 5]; 2, 0, 'a', 'b'); // [1, 2, 'a', 'b', 3, 4, 5]
a.splice(2, 2 , [1, 2] , 3); // ['a', 'b'] このとき a: [1, 2, [1, 2], 3, 3, 4, 5]
/* 注:
2 番目のパラメーター以降のパラメーターは、処理配列に直接挿入されます。
最初のパラメータは負の数にすることができます。
*/
// Push() メソッドと Pop() メソッドは 1 つまたは 2 つを変換できます。 more は配列の末尾に新しい要素を追加し、配列の新しい長さを返します。
// Pop() は配列の最後の要素を削除し、配列の長さを減らし、その値を返します。
// 注: 2 つの各メソッドは、配列の変更されたコピーを生成するのではなく、元の配列を変更します。 // スタック: [1, 2 ];
stack.pop(); // 削除された要素の値
stack.push(3); [1, 3]; return 2;
stack.pop(); // スタック: [1]; 削除された要素の値
stack.push([4, 5]); [1, [4, 5]]returnm 2;
stack.pop(); // スタック: [4, 5]; // unshift()
// toString() メソッドと toLocalString()
[1, 2, 4].toString (); // 1,2,3 ;
['a', 'b', 'c'].toString(); // 'a,b,c';パラメータなしの join メソッド。
/* 新しい jsapi メソッド:map、every、some、filter、forEach、indexOf、lastIndexOf、isArray */
/* Array- like object*/
arguments
document.getElementsByTagName();