问题描述
|
是否可以通过递增变量来初始化变量?这是我的意思的示例:
在此示例中,x尚未初始化
>x += 1
>print(x)
1
解决方法
不,不能保证该代码可在所有ECMAScript(JavaScript)解释器中正常工作。
大多数引擎应该抛出ReferenceError,说“ x未定义”。即使是可能自动为您声明x的允许解释器,也将其定义为\“ undefined \”,并且
undefined + 1
是NaN
,而不是1。
, 否。这在JavaScript中是不可能的。必须先声明变量,然后才能使用/递增变量。
, var x = ++x || 1;
在初始运行中,x是未定义的,OR的第一部分将为false,尽管第二部分将被使用。
在任何连续运行中,将使用OR的第一部分,而第二部分将被忽略。