Javascript:object.name和object [“name”]之间的区别?

时间:2013-09-24 14:40:50

标签: javascript

javascript中object.name和object [“name”]的主要区别是什么。哪一个更好?

4 个答案:

答案 0 :(得分:2)

.name必须使用有效的标识符。

[]可以使用任何字符串,包括变量中的字符串。

创建字符串的效率略低于使用标识符。

答案 1 :(得分:2)

使用索引器表示法允许您将属性名称指定为任意表达式(例如变量),而点表示法则需要源中的有效标识符。

你应该尽可能使用点符号。
如果需要指定运行时表达式或无效标识符,则只应使用索引符号。

答案 2 :(得分:0)

  

javascript中object.name和object [“name”]之间的主要区别

没有区别。它们在JS对象中引用完全相同的元素。

  

哪一个更好?

如果您知道要引用的元素的名称,则第一个object.name会更好,因为它更清晰,更易于阅读。它的效率也稍微高一点,但不是很大,它会产生显着的差异。

如果你想要一个动态名称(例如一个循环中的一个键,或一个由连接字符串构成的名称),那么你必须使用第二种语法object["name"]

答案 3 :(得分:0)

使用括号表示法而不是点符号对以下场景非常有用:

  • 当您需要迭代字符串数组时,例如fields = [“name”,“address”,...]为data[fields[i]]
  • 当您使用闭包编译器编译代码时(点符号被重命名并中断)
  • 如果要通过使用一种类型的点和其他类型作为括号来区分变量类型
  • 当用户/客户端选择要使用的数据字段时。 alert(data[arguments[1]])