対象中.操作符と[]操作子の違い
1483 ワード
何ですか
操作符は「属性アクセス」と呼ばれ、[]は「キーアクセス」と呼ばれ、両者は通常互換可能です.
例:
操作子は属性名が識別子の明らかなルールを満たす必要がありますが、[]文法は任意のUTF-8/Unicode文字列を属性名として受け入れることができます. プロパティ名がハローワールドの場合は[]を使用しなければなりません. オブジェクトで属性名を解析するときは、実際に文字列です.上のオブジェクト属性など、正しい解析方法は以下の通りです.
対象呼び出しの二つの面接問題について:
操作符は「属性アクセス」と呼ばれ、[]は「キーアクセス」と呼ばれ、両者は通常互換可能です.
例:
var obj={
a:2
};
obj.a;//2
obj['a']; //2
操作子は属性名が識別子の明らかなルールを満たす必要がありますが、[]文法は任意のUTF-8/Unicode文字列を属性名として受け入れることができます. プロパティ名がハローワールドの場合は[]を使用しなければなりません. オブジェクトで属性名を解析するときは、実際に文字列です.上のオブジェクト属性など、正しい解析方法は以下の通りです.
var obj={
"a":2
}
* オブジェクトに属性名を計算するために使用される場合は、[]方法が必要です. var who="ni";
var obj={
[who+"wo"]:"hello"
}
obj["niwo"];
console.log(obj["niwo"]);
* 配列は一つのオブジェクトであり、二つのオペレータの呼び出しをサポートしていますが、属性の値が変数である場合は、必ず使用してください. var arr=[];
for(var i=0;i<10;i++){
arr.push(i);
console.log(arr[i]); //1,2,3...
console.log(arr.i); //undefined
}
----------------------------私の分割線は、20180706に更新される------------------------------------対象呼び出しの二つの面接問題について:
// :
var a = {};
var obj1 = {n:2};
var obj2 = {n:3};
a[obj1]=4; // to.String()
console.log(a[obj1]); //4
a[obj2]=5;
console.log(a[obj1]); //5
console.log(a); //{[object Object]: 5}
// :
var b=[];
var arr1=[1,2,3];
var arr2=[2,3,4];
b[arr1]=6; // to.String() b['1 2 3'] = 6
b[arr2]=8; // to.String() b['2 3 4'] = 8
console.log(b[arr1]); //6
console.log(b[arr2]); //8
console.log(b); //[1,2,3: 6, 2,3,4: 8]