Javascript 为什么可以';我们增加(+;+;)或减少(--)数字文字量
例如,在下面的JavaScript代码中,为什么在使用变量时不会出现错误,但在使用数字文字时,会出现错误(在节点v6.9.5上运行) 我的理解是,这不起作用,因为你不能改变文字2。在上一个示例中,您返回了x或y(在递增之前或之后),因此它现在等于其上一个值的+1(因此x/y现在指向3,而不是2)。但是,您不能将2增加为其先前值的+1,然后使其指向文字3。2永远是2,2永远不会指向3Javascript 为什么可以';我们增加(+;+;)或减少(--)数字文字量,javascript,numbers,increment,literals,decrement,Javascript,Numbers,Increment,Literals,Decrement,例如,在下面的JavaScript代码中,为什么在使用变量时不会出现错误,但在使用数字文字时,会出现错误(在节点v6.9.5上运行) 我的理解是,这不起作用,因为你不能改变文字2。在上一个示例中,您返回了x或y(在递增之前或之后),因此它现在等于其上一个值的+1(因此x/y现在指向3,而不是2)。但是,您不能将2增加为其先前值的+1,然后使其指向文字3。2永远是2,2永远不会指向3 我的推理正确吗?文字是常量,递增/递减将分别尝试更改其参数。但常量值不能更改 这和编写类似的代码是一样的 2 =
我的推理正确吗?文字是常量,递增/递减将分别尝试更改其参数。但常量值不能更改 这和编写类似的代码是一样的
2 = 2 + 1;
文字是常量,递增/递减将分别尝试更改其参数。但常量值不能更改 这和编写类似的代码是一样的
2 = 2 + 1;
递增/递减运算符的参数必须是左值——本质上,它必须是可以赋值的表达式。这可以是变量,也可以是某些类型的简单结构化表达式(如
array[0]++
或object.foo++
)
常量不是左值。你不能给它们赋值(
3=abc
),也不能用递增或递减运算符来改变它们的值。递增/递减运算符的参数必须是左值——本质上,它必须是一个可以赋值的表达式。这可以是变量,也可以是某些类型的简单结构化表达式(如array[0]++
或object.foo++
)
常量不是左值。你不能给它们赋值(
3=abc
),也不能用递增或递减运算符来改变它们的值。console.log(x++)
与console.log(x)相同;x=x+1
。将2
替换为x
,第二条语句(2=2+1
)尝试将2+1
存储在非变量(2
)中console.log(++x)
与x=x+1相同;console.log(x)
。--
++
和--
的操作与此相同,都是对变量的操作。它们递增或递减并设置值。您不能更改常量。实际上,在某些语言(如python)中,预递增和预递减是对数字文本的有效操作。console.log(x++)
与console.log(x)相同;x=x+1
。将2
替换为x
,第二条语句(2=2+1
)尝试将2+1
存储在非变量(2
)中console.log(++x)
与x=x+1相同;console.log(x)
。--
++
和--
的操作与此相同,都是对变量的操作。它们递增或递减并设置值。您不能更改常量。实际上,在某些语言(如python)中,预递增和预递减是对数字文本的有效操作。