• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

ES6作用域

开发技术 开发技术 4小时前 1次浏览

// 全局作用域
// 浏览器环境有一个顶层对象window,其属性和var的全局变量等价
// window对象的内置属性,输出默认值;非内置属性undefined
// var若设置window对象的内置属性作为变量,则会直接覆盖
// console.log(window.name);空,内置属性
// console.log(window.abcd);undefined,非内置属性

// console.log(name);空,内置全局
// console.log(abcd);报错

// console.log(window.name===name);true,等价

// var value=10;
// console.log(window.value);var的全局变量即window的属性

// var name=’Mr.Lee’;
// console.log(window.name);//内置属性被覆盖

// webstorm 环境中根本无法识别window,它是Node环境,不支持对象

// 块级作用域
// ES6之前只有全局作用域和函数作用域,并没有块级作用域
// 循环体和条件体就是块级作用域就是两个花括号区域:{}
// 在块级区域不使用let会造成全局变量污染问题
// {{{…}}}块级作用域支持多层嵌套,每一层均为封闭,只作用于此:
// {{{
// {let value=10;}
// console.log(value);报错
// }}}
// ES6之前,采取自我立即执行匿名函数的方法来阻止污染
// (function(){
// var value=10;
// }());
// {
// let value=10;
// }

// ES6之前函数必须在顶层声明,但违反不报错,ES6开始支持
// 块级作用域内函数声明,可全局访问,没封闭
// {
// function fn(){
// console.log(‘块级函数’);
// }
// }
// fn();//正常访问
// 推荐使用函数表达式的方法去构建函数
{
let fn=function(){
console.log(‘块级函数’);
};
fn();
}


程序员灯塔
转载请注明原文链接:ES6作用域
喜欢 (0)