【发布时间】:2018-01-14 13:24:48
【问题描述】:
我看到 javascript 出现了一些奇怪的行为。我是这种语言的新手,但据我所知,如果您在 console.log() 方法中增加一个变量(或以任何方式更改它),这实际上会全局更改该变量。
var a = 0;
console.log(a); //prints 0
console.log(a++); //prints 0, a becomes 1
console.log(a++); //prints 1, a becomes 2
console.log(a++); //prints 2, a becomes 3
console.log(a); //prints 3
这是javascript特有的吗?我原以为该变量不会在全局范围内受到影响,并且最后一个打印语句会显示 a 为 0。
【问题讨论】:
-
using
a++正在使用post-increment操作.. 我在这里没有发现任何问题 -
是的,这是完全正常的。控制台在与
window或您所在的页面相同的范围内运行。您没有在孤立的范围内运行这些代码,因此它们会影响页面及其内容。 -
它不是我有问题的增量运算符。事实上,console.log() 函数中的语句可以全局修改变量。
-
无论这意味着什么,您都没有在“内部”
console.log中使用它。您的代码相当于var b = a++; console.log(b);。不知道为什么您认为将其内联到函数调用中会以某种方式隔离a。
标签: javascript variables logging console