我有一个简单的例子,我可以通过以下两种方式收集Object属性的值:
对象
var obj = {name:“Peter”,年龄:“23”};
方法1
obj.name
方法2
OBJ [ '名称']
我认为在这两种方法中我们都使用对象的键来访问它的值。那么区别是什么呢?
或
如果我们可以同时做两件事,我们为什么需要2种方法?
答案 0 :(得分:1)
这一个obj.name
称为点表示法,此obj['name']
称为括号表示法。
如果我们可以对两者做同样的事情,为什么我们需要2种方法?
Bracket notation
可以帮助您访问key
不符合valid variable name
条件的媒体资源。
前:
var x = {"#12":"Hello"};
console.log(x["#12"]); //Hello
您不能使用点符号,例如x.#12
。因为那将是无效的语法。
答案 1 :(得分:0)
方括号表示法允许使用不能与点表示法一起使用的字符:
var foo = myForm.foo[]; // incorrect syntax
var foo = myForm["foo[]"]; // correct syntax
方括号表示法的第二个优点是处理变量属性名称时。
for (var i = 0; i < 10; i++) {
someFunction(myForm["myControlNumber" + i]);
}
<强>综述强>:
点符号编写速度更快,读取更清晰。 方括号表示法允许访问包含特殊字符的属性以及使用变量选择属性 另一个不能与点表示法一起使用的字符示例是属性名称,它们本身包含一个点。
例如,json响应可以包含名为bar.Baz的属性。
var foo = myResponse.bar.Baz; // incorrect syntax
var foo = myResponse["bar.Baz"]; // correct syntax
参考:From Here