1

let命令

1.使用let命令,会创建一个块作用域

{
    // {}包围的代码块就是块作用域。
    for (let i=1; i<3; i++) {
        console.log(i);  // 1 2 undefined
    }
}

2.let声明的变量只在块作用域内有效

{
    for (let i=1; i<3; i++) {
        console.log(i);
    }
    // ES6默认开启严格模式,引用未声明的变量会报引用错误
    console.log(i); // Uncaught ReferenceError: i is not defined
}

3.同个作用域里,使用let不能重复声明变量

{
    // 使用let不能重复声明变量
    let a = 1;
    let a = 2; // Uncaught SyntaxError: Identifier 'a' has already been declared
}

const命令

1.使用const声明一个常量

{
    const PI = 3.145926;
}

2.使用const声明的常量不能被修改

{
    const PI = 3.145926;
    PI = 6;  // Uncaught TypeError: Assignment to constant variable.
}

3.使用const声明常量时就要赋值

{
    const PI; // Uncaught SyntaxError: Missing initializer in const declaration
    PI = 3.145926;
}

4.使用const声明一个引用类型数据的常量

{
    const k = {
        a: 1
    };
    // 对象是引用类型,它的指针没变,对象本身改变了
    k.a = 2;
    k.b = 3;
    console.log(k); // {a: 2, b: 3}
}

lxcan
337 声望32 粉丝