点击上方蓝字关注“小郑搞码事”,每天都能学到知识,搞懂一个问题!
JavaScript虽有着非常灵活的语法,但其中定义一个变量需要多加注意,否则会产生意想不到的BUG。
一,看这个BUG的产生
第一段代码:
var a = 1 , b = 1
这段代码本质上相当于就是:
var b = 1
var a = 1
第二段代码:
var a = b = 1
这段代码本质上相当于就是:
b = 1
var a = b
这样的话,就很容易产生一个BUG。举一个例子:
输出结果如下:
b变量无定义,这个结果是我们希望得到的,因为在一个执行函数里,我们希望定义两个局部变量,而不对全局变量造成污染。
但是,下面这个这段代码输出的结果就会不一样:
输出:1
很明显b变量变成了一个全局变量。从代码的本质说来看,也很容易理解。这不是我们想要的。
二,严格模式下
如此一来,这段代码输出就是:
这样就符合我们的预期。这也就是我们为什么要让我们的代码在严格模式下执行原因。
最后总结:
JavaScript中定义变量要谨慎,不要忽视使用严格模式(use strict),否则将会产生意想不到的BUG。
閱讀更多 小鄭搞碼事 的文章
關鍵字: 技术 编程语言 JavaScript