114

74 阅读1分钟

1.const let 声明: var出了块级区域有效 let出了块级区域无效; var声明具有变量提升能力 不管声明哪里 均视为作用域部声明; let声明不具备变量声明提升能力。离开块级的作用域后。变量立刻消失。 let更适合局部变量,非常容易掌握切不会导致凌乱 变量声明之前使用会产生不同结果。 undefine的表示声明没有赋值,说明顺序要在前面 const声明的作用是“创建一个只读的变量,一旦声明不可改变 和let声明一样,const声明的常量无法提升,也存在暂时死区; 和let不同的是,const声明后必须赋值,否则会报错

2.块级作用域: 浏览器环境有一个顶层对象window,其属性和var的全局变量等价 如果是window对象的内置属性,则输出默认值,而非内置则undefined var如果设置了window对象的内置属性作为变量,则会直接覆盖 从WebStorm环境中根本无法识别window,因为它是node环境,不支持对象 而node环境的顶层对象global,不过其他环境不支持 {{{{...}}}}会计作用于支持多层嵌套,每一层均为封闭的,只作用于此 在ES6之前,采用知我立即执行匿名函数的方式来防止变量污染 ES6之前函数必须在顶层声明,违反但不报错,而ES6则开始支持 在块级作用于内声明函数还可以在全局可访问。并没有封闭 使用函数表达式方法去构建函数