JavaScript配列のいくつかの奇妙な行為
4338 ワード
今日はJavaScriptの配列を復習しました.その後、彼のいくつかの素晴らしい行為をまとめました.ここでshareと一緒にします.もし間違ったところがあれば、ご指摘ください.
奇抜な1:Aray()コンストラクタ関数はnewキーワードを使わずに呼び出すことができます.
Aray()コンストラクタは配列の要素として彼に渡すパラメータを使用して、配列を作成します.一般的に、私たちは以下のように呼ばれています.
ただし、newを省略してもいいです.
変花2:一つのパラメータだけを構造関数に伝える時、行動は予測できません.
パラメータが一つしか渡されない場合、このパラメータは整数であり、配列が得られ、lengthはこのパラメータに等しいです.
浮動小数点が一つだけ伝わったら、エラーが発生します.
しかし、二義性を避けるためには、字面量をそのまま使って配列を作成するのが良いと思います.
奇抜な1:Aray()コンストラクタ関数はnewキーワードを使わずに呼び出すことができます.
Aray()コンストラクタは配列の要素として彼に渡すパラメータを使用して、配列を作成します.一般的に、私たちは以下のように呼ばれています.
var a = new Array(1, 2, "bom!");
a.length; //3
console.log(a); //[1, 2, "bom!"]
ただし、newを省略してもいいです.
var a = Array(1, 2, "bom!");
a.length; //3
console.log(a); //[1, 2, "bom!"]
彼の内部実現メカニズムは分かりませんが、彼のコンストラクター関数は次のように定義されているかもしれません.function Array(args) {
// ,this Array ,
// new ,
if( !this instanceof Array) {
return new Array(args);
}
//
//...
}
変花2:一つのパラメータだけを構造関数に伝える時、行動は予測できません.
パラメータが一つしか渡されない場合、このパラメータは整数であり、配列が得られ、lengthはこのパラメータに等しいです.
var a = new Array(12);
console.log(a.length); //12
console.log(a); //[]
浮動小数点が一つだけ伝わったら、エラーが発生します.
var a = new Array(1.1); //Uncaught RangeError: Invalid array length(…)
文字列を渡すと正常に動作し、配列の最初の要素として文字列が使用されます.var a = new Array("1.1");
console.log(a.length); //
console.log(a); //["1.1"]
しかし、二義性を避けるためには、字面量をそのまま使って配列を作成するのが良いと思います.
var a = []; //
var a = [1, 1, "bom"]; //
var a = [12]; // , 12
3: length ( )
のように、 は に2のlengthを100に えました.しかも に しました.
var a = [1, 2, 3, 4];
console.log(a.length); //4
a.length = 100;
console.log(a.length); //100
length 100,
, a[4]-a[99] , , , 0 a.length , undefined。
:
var a = [1, 2, 3, 4];
a.length = 100;
console.log(a[10]); //undefined
console.log(99 in a); //false
:
var a = [1, 2, 3, 4];
a[99] = undefined;
console.log(a.length); //100
, a[99] , , undefined 。
a[4] a[98] , :
var a = [1, 2, 3, 4];
a[99] = undefined;
console.log(99 in a); //true;
console.log(98 in a); //false
console.log(a.length); //100