Javascript中value.x和value[x](从数组获取属性)之间的差异?

Javascript中value.x和value[x](从数组获取属性)之间的差异?,javascript,arrays,properties,Javascript,Arrays,Properties,我在读书,被房子卡住了 据说 value.x和value[x]都可以访问值上的属性,但不一定是同一个属性 鉴于value.x获取名为“x”的值的属性,value[x]尝试计算表达式x并将结果用作属性名称 (value是一个数组,x是与本例中的.length类似的属性。) value.x和value[x]之间有什么区别?我不知道如何计算表达式 我不知道value[x]如何计算表达式 对表达式求值意味着用相应的值替换所有符号,并对它们应用所有(如果有的话)操作(JS为您做了所有事情,因此您不应该费

我在读书,被房子卡住了

据说

value.x
value[x]
都可以访问值上的属性,但不一定是同一个属性

鉴于
value.x
获取名为“x”的值的属性,
value[x]
尝试计算表达式x并将结果用作属性名称

value
是一个数组,
x
是与本例中的
.length
类似的属性。)

value.x
value[x]
之间有什么区别?我不知道如何计算表达式

我不知道value[x]如何计算表达式

对表达式求值意味着用相应的值替换所有符号,并对它们应用所有(如果有的话)操作(JS为您做了所有事情,因此您不应该费劲地去想它)

对于像
x
一样微不足道的表达式,其计算值等于变量
x
引用的值

例如:

在本例中,
value
对象的
vvv
属性将为
alert
ed

我不知道value[x]如何计算表达式

对表达式求值意味着用相应的值替换所有符号,并对它们应用所有(如果有的话)操作(JS为您做了所有事情,因此您不应该费劲地去想它)

对于像
x
一样微不足道的表达式,其计算值等于变量
x
引用的值

例如:

在本例中,
value
对象的
vvv
属性将为
alert
ed

我不知道value[x]如何计算表达式

对表达式求值意味着用相应的值替换所有符号,并对它们应用所有(如果有的话)操作(JS为您做了所有事情,因此您不应该费劲地去想它)

对于像
x
一样微不足道的表达式,其计算值等于变量
x
引用的值

例如:

在本例中,
value
对象的
vvv
属性将为
alert
ed

我不知道value[x]如何计算表达式

对表达式求值意味着用相应的值替换所有符号,并对它们应用所有(如果有的话)操作(JS为您做了所有事情,因此您不应该费劲地去想它)

对于像
x
一样微不足道的表达式,其计算值等于变量
x
引用的值

例如:



在本例中,
value
对象的
vvv
属性将是
alert
ed.

value.x
表示值中的
x
。在第二个
x
是一个变量。所以如果x等于a,那么值[x]等于value.aSo,就像myArray.length==myArray[length]?通常使用哪一种可能更好?(就像计算效率更高或更人性化一样)myArray[length]是无效的,除非您有一个变量名“length”,其值为“length”,点表示法总是更好的做法
value.x
value['x']
相同只要看看这个简单的示例,您就会理解var a={'id':1,'name':'xyz}; console.log(“a.id==”,a.id,“a.name==”,a.name)console.log(“a['id']==”,a['id'],“a['name']==”,a['name'])如果你简单地把
a[id]
放进去,它会尝试计算id,结果是错误的
id没有定义
谢谢大家!还有一个问题。。。对于另一个问题中已经存在的答案,这意味着什么:“方括号表示法的第二个优点是在处理变量属性名称时。”?我们可以将自定义变量
myControlNumber
用于
myForm[“myControlNumber”+i]
value。x
表示值中的
x
。在第二个
x
是一个变量。所以如果x等于a,那么值[x]等于value.aSo,就像myArray.length==myArray[length]?通常使用哪一种可能更好?(就像计算效率更高或更人性化一样)myArray[length]是无效的,除非您有一个变量名“length”,其值为“length”,点表示法总是更好的做法
value.x
value['x']
相同只要看看这个简单的示例,您就会理解var a={'id':1,'name':'xyz}; console.log(“a.id==”,a.id,“a.name==”,a.name)console.log(“a['id']==”,a['id'],“a['name']==”,a['name'])如果你简单地把
a[id]
放进去,它会尝试计算id,结果是错误的
id没有定义
谢谢大家!还有一个问题。。。对于另一个问题中已经存在的答案,这意味着什么:“方括号表示法的第二个优点是在处理变量属性名称时。”?我们可以将自定义变量
myControlNumber
用于
myForm[“myControlNumber”+i]
value。x
表示值中的
x
。在第二个
x
是一个变量。所以如果x等于a,那么值[x]等于value.aSo,就像myArray.length==myArray[length]?通常使用哪一种可能更好?(就像计算效率更高或更人性化一样)myArray[length]是无效的,除非您有一个变量名“length”,其值为“length”,点表示法总是更好的做法
value.x
value['x']
相同只要看看这个简单的示例,您就会理解var a={'id':1,'name':'xyz}; console.log(“a.id==”,a.id,“a.name==”,a.name)console.log(“a['id']==”,a['id'],“a['name']==”,a['name'])如果你简单地把
a[id]
放进去,它会尝试计算id,结果是错误
id不存在
var x = 'vvv';
alert(value[x]);