javascript + 操作符

js 在控制台中

++[[]][0] 为什么这个不报错
++[] 这个报错呢


陪伴而非守候
浏览 469回答 1
1回答

人到中年有点甜

++[[]][0]: [[]]是一个只包含一个空数组的数组,那么根据运算符优先级,[] > (prefix)++,运算[[]][0],得到一个空数组Array(0),是一个对象,并且是数组中的一个值,符合左值的条件.之后进行(prefix)++运算,由于++运算将执行数据类型转换(PS:Javascript中具体的数据类型转换太复杂了,我就不展开了),这里Array[0]将转换成0,结果++得到1.具体可看控制台输出:console.log([[]]) // > [Array(0)] console.log([[]][0]) // > []++[]: 左值是一个空数组,不是一个合法的左值,所以报错.什么是左值:左值是一个古老的术语,它是指 表达式只能出现在赋值运算符的左侧。在JavaScript中,变量,对象属性和数组元素均是左值.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript