传递给不带逗号的函数的参数不会引发语法错误?

时间:2018-11-28 18:14:04

标签: javascript

为什么这段代码不会引发语法错误?

console.log('hello' ['world'])

两个参数之间应该有一个逗号,但是没有。这不应该引发语法错误吗?

1 个答案:

答案 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 :)