关于js中++的小问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于js中++的小问题相关的知识,希望对你有一定的参考价值。
先看下面两个代码,为什么第一行正常(编译/运行),但第二行给出错误?注意是ReferenceError。
[[]][0]++; []++; #Uncaught ReferenceError: Invalid left-hand side expression in postfix operation
第一想法[[]][0]
应该和[ ]是一样的,所以两者都应该工作,或者两者都应该失败。
首先,这不是一个SyntaxError
!这是一个运行时错误ReferenceError
。所以[ ]++是语法允许的。
想要解决这个问题,就应该查查什么事ReferenceError。再看下面:
2=3
#Uncaught ReferenceError: Invalid left-hand side in assignment
这个错误和上面的错误一样。
因为这两个操作都使用称为“PutValue”的规范中的抽??象算法。该算法的第3步说:
如果Type(V)不是Reference,则抛出ReferenceError异常。
注意:成员表达式的结果不是值本身([]),而是Reference对该值的影响 。所以事实上,[0]访问是给我们提到外部数组的第0个位置,
以上是关于关于js中++的小问题的主要内容,如果未能解决你的问题,请参考以下文章