ES6新增块级作用域

    xiaoxiao2022-07-05  152

    // 1、函数作用域覆盖了全局作用域,发生了变量提升,函数声明大于var声明的变量, // 因此在函数里面的a提到了前面,在打印a时初始化一个undefined给a,所以第一次打印是undefined var a = 1; function fn() { console.log(a); // undefined if (1<2){ var a = 100; } console.log(a) // 100 }; fn(); // 2、循环中的变量泄露为全局变量 for(var i = 0; i<5; i++){ console.log(">>>",i); } console.log(i) // 5 // 3、ES6新增块级作用域(let声明) /* 用let声明新增了块级作用域,外层作用域无法获取内层作用域,非常安全明了, 即使外层和内层都是用相同的变量名,也都互不干扰 */ function func() { let num = 66; if (true){ let num = 77; console.log(num) // 77 } console.log(">>>",num) // >>> 66 } func()
    最新回复(0)