ES6 LET \CONST - ocean111/oceanblog GitHub Wiki
var a = [];
for ( var i=0;i<10;i++){
a[i] = function(){
console.log(i);
};
}
//新值覆盖旧值,最后输出的最后i
let bar = 2;
//形成封闭式作用域
var tm = 123;
if(true){
tm = 'ajkljfd';
let tm;
}
// let 在这之前 未声明进入暂时性假死状态
// let const 出现变量提升 减少运行时错误
// let 不允许在相同作用域内,重复声明一个变量
function(){
let a = 10;
}
function(){
let a = 13;
}
//全局作用域 和 函数作用域 no 块级作用域 变量提升进行覆盖 场景1
var tmp = new Date();
function show (){
if(false)
var tmp = 123;
}
}
show(); //变量提升 进行覆盖
//场景2
var s = '4545';
for(var i=0;i<s.length;i++){
console.log(s[i]);
}
//当for遍历 之后 没有消失 泄露成了全局变量.
ES6新增块级作用域 let / var 变量提升覆盖
{let mo = ....}
跨级作用域 and 函数声明
try{
function f (){}
}catch(e){
}
const 声明一个只读常量,不能改变值
const po = 2525252;
一共存在6种变量,let const var function class import
全局对象的属性 global 对象的属性 全局变量逐步与全局对象 属性脱钩
var a = 1;
// 如果在node的repl环境,可以写成global.a // 或者采用通用的方法 this.a
windwow.a // 1
let b = 1;
window.b // undefined
//全局对象与全局变量区分开