全局作用域:

 

直接编写在 script 标签之中的JS代码,都是全局作用域;

 

或者是一个单独的 JS 文件中的。

全局作用域在页面打开时创建,页面关闭时销毁;

 

在全局作用域中有一个全局对象 window(代表的是一个浏览器的窗口,由浏览器创建),可以直接使用。

如果是window对象设置的内置属性则输出默认值,而非内置则undefined

var如果设置了window对象的内置属性作为变量,则会直接覆盖

 

 块级作用域:

如果在块级作用域不使用let ,就会造成全局变量污染

结合 { }  和 let 解决全局变量污染

在ES6之前,采用自我立即执行匿名函数来防止变量污染,不过在块级作用域声明的函数,还可以全局访问,没有封闭

 

数组解构:

 

解构的时候,变量从左到右和元素对齐,可变参数放到最右边。

能对应到数据就返回数据,对应不到数据的返回默认值,如果没有默认值返回undefined。

 

 对象解构:

 

解构时需要提供对象的属性名,会根据属性名找到对应的值。没有找到的返回缺省值,没有缺省值则返回 undefined。

 

 常见的解构: