ES6 中 let和const命令

    科技2025-07-12  14

    ES6 中 let和const命令

    一,let命令二,const命令

    一,let命令

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

    特点一:使用let关键字声明的变量具有块级作用域,声明的变量只在所处于的块级有效 (块级作用域:在大括号中产生的作用域) if (true) { let num = 100; var abc = 200; } console.log(abc); //200 console.log(num); //error:num is not defined

    let声明的num变量,只存在于块级作用域(在大括号中产生的作用域)因此报错。

    由于这个特性,let可以用来防止循环变量变成全局变量 例如:循环中的计数器,当循环结束时,计数器就没必要存在了

    for (var i = 0; i < 5; i++) { } console.log(i); //5 for (let j = 0; j < 5; j++) { } console.log(j); //error: j is not defined

    用let声明的计数器j,只存在for循环中的块级作用域,不会成为全局变量,因此报错。

    特点二:let声明的变量,不存在变量提升,只能先声明后使用 console.log(a); //a is not defined let a = 20;

    上面这段代码,由于let声明不存在变量提升,所以会报错

    特点三:let声明的变量,具有暂时性死区特性 var tmp = 10; if (true) { console.log(tmp); //tmp is not defined let tmp = 20; }

    上面代码中,存在全局变量tmp,但是块级作用域内let又声明了一个局部变量tmp,导致后者绑定这个块级作用域,所以在let声明变量前,对tmp赋值会报错。

    特点四:let不允许在相同作用域内,重复声明同一个变量。 // 报错 function func() { let a = 10; var a = 1; } // 报错 function func() { let a = 10; let a = 1; }

    二,const命令

    1,基本用法 const声明一个只读的常量。一旦声明,常量的值就不能改变。 2,特点

    特点一:一旦声明,常量的值就不能改变 const PI = 3.1415; PI // 3.1415 PI = 3; // TypeError: Assignment to constant variable.

    上面代码表明改变常量的值会报错。

    特点二:const声明的变量不得改变值,这意味着,const一旦声明变量,就必须立即初始化,不能留到以后赋值。 const foo; // SyntaxError: Missing initializer in const declaration

    上面代码表示,对于const来说,只声明不赋值,就会报错。

    特点三:const的作用域与let命令相同:只在声明所在的块级作用域内有效。 if (true) { const MAX = 5; } MAX // Uncaught ReferenceError: MAX is not defined 特点四:const命令声明的常量也是不提升,同样存在暂时性死区,只能在声明的位置后面使用。 if (true) { console.log(MAX); // ReferenceError const MAX = 5; }

    上面代码在常量MAX声明之前就调用,结果报错。

    特点五:const声明的常量,也与let一样不可重复声明。 var message = "Hello!"; let age = 25; // 以下两行都会报错 const message = "Goodbye!"; const age = 30;
    Processed: 0.009, SQL: 8