麻烦的全局变量

当我们使用下面的div的id是会发现得到的并不是我们想要的

1
<div id="parent"><div>
1
console.log(parent) //window

全局变量很容易造成变量名冲突,应该尽量少的使用全局变量

构建局部作用域

既然不能创建全局变量,我们就应该创建一个局部作用域
在使用let的情况下,一对{}就可以包含一个局部作用域,但在使用var的情况下,我们需要使用函数创建局部作用域。

1
2
3
function (){
...
}.call()

在一些浏览器中会遇到语法错误,我们可以使用()包裹整个函数,也可以在前面加上-或者+,或者!,只要是单目运算符都可以