es6之初学篇

来源:互联网 发布:知乎量子纠缠与超光速 编辑:程序博客网 时间:2024/05/16 11:12
.let于var的区别
{
    /*let定义的变量只能在块作用域里面有用*/
    let a = 12;
    var b = 10;
    console.log(a);
}
/*访问不了*/
//console.log(a);
console.log(b);
2.for循环
var a = [];
for (let i = 0; i < 10; i++) {
  a[i] = function () {
    console.log(i);
  };
}
a[6](); // 10
3.引用错误类型
 
console.log(c);
let c = 12;
/*不能在同一个作用域下声明2个同样的变量*/
 function func() {
      var a = 1;
      let a = 10;
      let c = 1;
      let c = 12;/*报错*/
    }
    func();
4.覆盖外部变量 变量提升
 
function f(){
    console.log(tmp);
    if(false){
        var tmp = 'hello world';
    }
}
f();//输出undefined
5.es6提升let
 
function f1(){
    let n =5;
    if(true){
        let n=2;
    }
    console.log(n);//5
}
6.常量const
 
const a = 12;
console.log(a);
a = 2;//报错常量不能被修改 Assignment to constant variable.
function b(){
    const c = 12;
    const c = 10;//报错 不能被重写
    console.log(d);//错 引用类型错误 ReferenceError
    const d = 12;
}
console.log(c);//报错 和let一样是块级常量
const foo = Object.freeze({});
// 常规模式时,下面一行不起作用;
// 严格模式时,该行会报错
foo.prop = 123;
7.es6命名规范
 
window.a = 1;
console.log(a);
let b = 2;
window.b;//undefined
8.变量的解析赋值