JavaScript定义变量要谨慎,不要忽视使用严格模式(use strict)

点击上方蓝字关注“小郑搞码事”,每天都能学到知识,搞懂一个问题!

JavaScript虽有着非常灵活的语法,但其中定义一个变量需要多加注意,否则会产生意想不到的BUG。

一,看这个BUG的产生

第一段代码:

var a = 1 , b = 1

这段代码本质上相当于就是:

var b = 1

var a = 1

第二段代码:

var a = b = 1

这段代码本质上相当于就是:

b = 1

var a = b

这样的话,就很容易产生一个BUG。举一个例子:

JavaScript定义变量要谨慎,不要忽视使用严格模式(use strict)

输出结果如下:

JavaScript定义变量要谨慎,不要忽视使用严格模式(use strict)

b变量无定义,这个结果是我们希望得到的,因为在一个执行函数里,我们希望定义两个局部变量,而不对全局变量造成污染。

但是,下面这个这段代码输出的结果就会不一样:

JavaScript定义变量要谨慎,不要忽视使用严格模式(use strict)

输出:1

很明显b变量变成了一个全局变量。从代码的本质说来看,也很容易理解。这不是我们想要的。

二,严格模式下

JavaScript定义变量要谨慎,不要忽视使用严格模式(use strict)

如此一来,这段代码输出就是:

JavaScript定义变量要谨慎,不要忽视使用严格模式(use strict)

这样就符合我们的预期。这也就是我们为什么要让我们的代码在严格模式下执行原因。

最后总结:

JavaScript中定义变量要谨慎,不要忽视使用严格模式(use strict),否则将会产生意想不到的BUG。


分享到:


相關文章: