ES6 let const关键字

在es6中,引入了let和const关键字;

1、let
ES6 新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。

(1)在块级作用域里有效(比如循环遍历内部就可以用let定义变量)

<script type="text/javascript">
    {
        let a = 10;
        var b = 1;
    }
    console.log(b);
    console.log(a);
</script>

报错:ReferenceError: a is not defined

(2)不能重复声明

<script type="text/javascript">
    {
        let a=0;
        let a=2;
    }
</script>

Uncaught SyntaxError: Identifier 'a' has already been declared

(3)不存在变量提升

var命令会发生“变量提升”现象,即变量可以在声明之前使用,值为undefined

这种现象多多少少是有些奇怪的,按照一般的逻辑,变量应该在声明语句之后才可以使用。

为了纠正这种现象,let命令改变了语法行为,它所声明的变量一定要在声明后使用,否则报错。

<script type="text/javascript">
    console.log(a);//undefined
    var a=1
    console.log(b);// Uncaught ReferenceError: Cannot access 'b' before initialization
    let b=1
</script>

2、const

const声明一个只读的常量。一旦声明,常量的值就不能改变。

<script type="text/javascript">
    const PI = 3.1415;
    PI = 3;
</script>

Uncaught TypeError: Assignment to constant variable.

猜你喜欢

转载自www.cnblogs.com/jnba/p/12196090.html