本文解析JavaScript中圆括号()和方括号[]的特殊用法。圆括号内的逗号运算符返回最后一个表达式的值,使全局函数可直接调用;方括号用于数组声明时,内部逗号同样遵循取最后值的规则,实现通过变量索引访问元素。
圆括号()与逗号运算符的特殊行为
(1, 2, 3);
// 返回值为3;探究其背后的机制及圆括号的具体作用。
(1, 2, 3, alert )("Amazing!");
// 此写法可直接调用alert;经测试,全局函数均支持此类调用方式。
方括号[]在数组索引中的特殊用法
以下是关于方括号[]的疑问:
在JS中,[]通常代表数组,但存在特殊用法。
[1,2,3][1];
// 返回2;该方法常用于数组索引及通过变量获取对象属性名。
[1,2,3][1,2];
// 返回3;此情况与圆括号类似,均返回括号内最后一个值。
在(1,2,3)中,括号和逗号均为运算符,逗号运算符返回最后一个表达式的求值结果,具体规则可自行查阅。
("Amazing")的括号表示函数调用。
alert是一个函数对象,当它作为表达式的求值结果返回时,当然可以被调用。
[1,2,3]这里的方括号是声明数组常量,紧跟[1]表示取数组元素。[1,2,3][1]意为取[1,2,3]这个数组里的第一个元素,即2(下标从0开始)
[1,2,3][1,2]=[1,2,3][(1,2)]=[1,2,3][2]=3