为什么这段代码不会引发语法错误?
console.log('hello' ['world'])
两个参数之间应该有一个逗号,但是没有。这不应该引发语法错误吗?
答案 0 :(得分:6)
您正在下标字符串([...]
部分解释为bracket notation而不是数组)。结果将是undefined
,因为字符串没有名为'world'
的属性。
如果下标有效,则结果将是字符串中的一个字符:
console.log('hello'[1]); // e
根据您提供的属性,结果可能是其他结果:
console.log('hello'['toString']); // logs the function toString of the string 'hello'
console.log('hello'['length']); // logs the length of the string 'hello'
console.log('hello'['apple']); // mysteriously logs undefined :)