ES6 let和const 命令

一、let命令

  使用的注意事项:

   1、es6新增了let命令,它的用法和var 差不多,但是它声明的变量只在let命令所在的代码块有效

    

   2、不存在变量提升,所以变量要声明后再使用,不然会报错

    

   3、不允许在相同的作用域中重复声明同一个变量,所以也不能在函数里重新声明参数

    

   4、let为js新增了块级作用域,这样就能避免变量的全局污染

    4-1、为什么需要块级作用域

      1、在es5中,函数作用域:内层变量可能会覆盖外层变量

      

      2、用来计数的循环变量泄露为全局变量

      

    4-2、es6中的块级作用域

      1、避免循环变量、泄露成全局变量,造成全局污染

      

      2、外部代码块不受内部代码块的影响

        

二、const命令

   使用的注意事项:

     1、const用来声明常量,一旦声明,它的值就不能改变,并且应该立即被初始化,不能留到以后再赋值

     2、作用域与let命令相同:只在声明所在的块级作用域内有效

     3、const命令声明的常量,同样存在暂时性死区,只能在声明后使用

     4、与let一样const也不能重复声明常量

     5、对于复合类型的变量,变量名不指向数据,而直指向数据所在的地址。

      const命令知识保证变量名指向的地址不变,并不保证地址的 数据不变

          常量foo存储的是地址,指向一个对象,不能把foo指向另外的一个地址

总结:es5声明变量的方法只有var和function,而在es6中却有6种方法,增加了let和const命令。后面还会有import命令和class命令,学了es6要学会使用它

    

      

   

      

      

    

    

    

   

  

原文地址:https://www.cnblogs.com/15fj/p/8361821.html

时间: 2024-10-08 08:04:15

ES6 let和const 命令的相关文章

ES6 let和const命令异同

let命令和const命令之间的异同 异:let命令声明的变量可以被修改内存地址,但是const命令声明的变量不可以被修改内存地址. 因此被const声明的简单类型的数据就被当做是常量,而复合类型的数据被声明时,变量中保存中的是指向内存地址的指针,因此可以在不改变内存地址的基础上对数据进行更改. 同:1.只在声明所在的块级作用域内有效. 2.声明的变量不提升,同样存在暂时性死区,只能在声明的位置后面使用. 3.const声明的常量,也与let一样不可重复声明. 在条件允许的情况下,建议多使用co

ES6————let和const命令

let 命令 基本用法 ES6 新增了let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效. { let a = 10; var b = 1; } a // ReferenceError: a is not defined. b // 1 不存在变量提升 var命令会发生"变量提升"现象,即变量可以在声明之前使用,值为undefined.这种现象多多少少是有些奇怪的,按照一般的逻辑,变量应该在声明语句之后才可以使用. 为了纠正这种现象,le

ES6: let 和 const 命令

Let 1.Let声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效. for循环的计数器,就很合适使用let命令. for (let i = 0; i < 10; i++) { // ... } console.log(i); // ReferenceError: i is not defined 上面代码中,计数器i只在for循环体内有效,在循环体外引用就会报错. 2.不存在变量提升. // let 的情况 console.log(bar); // 报错Ref

ES6中的const命令【转】

1.const声明一个只读常量,一旦声明,常量的值就不能改变 1 const PI=3.1415; 2 console.log(PI);//3.1415 3 4 PI=3;//Uncaught TypeError: Assignment to constant variable. 2.const一旦声明常量,就必须立即初始化,不能留到以后赋值 1 const WIDTH;//Uncaught SyntaxError: Missing initializer in const declaratio

ES6中的const命令

1.const声明一个只读常量,一旦声明,常量的值就不能改变 1 const PI=3.1415; 2 console.log(PI);//3.1415 3 4 PI=3;//Uncaught TypeError: Assignment to constant variable. 2.const一旦声明常量,就必须立即初始化,不能留到以后赋值 1 const WIDTH;//Uncaught SyntaxError: Missing initializer in const declaratio

ES6之let(理解闭包)和const命令

ES6之let(理解闭包)和const命令 最近做项目的过程中,使用到了ES6,因为之前很少接触,所以使用起来还不够熟悉.因此购买了阮一峰老师的ES6标准入门,在此感谢阮一峰老师的著作. 我们知道,ECMAScript 6即ES6是ECMAScript的第五个版本,因为在2015年6月正式发布,所以又成为ECMAScript2015.ES6的主要目的是为了是JS用于编写复杂的大型应用程序,成为企业级的开发语言. 说明:由于有时候我们希望得知es6代码的具体实现原理或者说希望能够转化为es5使用,

《ES6标准入门》10~28Page let和const命令 变量的解构赋值

1.let和const命令 (1)let命令 let命令类似于ES3中的var命令,但是所声明的变量只在let所在的代码块内有效. 1 { 2 let a = 10; 3 var b = 1; 4 } 5 6 console.log(a); //报错 7 console.log(b); //1 let相较var来讲有三个特殊性质,分别是不存在变量提升.暂时性死区和不允许重复声明. 1 //不存在变量提升 2 console.log(a); //报错 3 let a = 1; 4 5 //你无法在

ES6标准学习: 1、let 与 const 命令

1.let命令 一.基本用法 首先看下面一段代码: var a = [] for (var i = 0; i < 10; i++) { a[i] = function () { return i } } a.map(fn => { console.log(fn()) }) 以上代码的运行结果可能是什么? 0, 1, 2, ... 9  ? 结果是:连续输出了10次 10 简单的解释就是,当使用map遍历a中的每一个fn时,当fn执行时,在作用域链上查找i时,找到的i是最终已经变成了10的i,而

ES6系列,1.新增let和const命令

由于ES5只有全局作用域和函数作用域,因此ES6增加块级作用域. let用于定义变量,块级作用域,for循环建议使用let: let会引起变量提升,必须先声明,在调用: let声明的变量,不允许重复声明: let实际是创建了块级作用域,可以变成do表达式 例:let x = do { let t = f(); t * t + 1; }; 上面代码中,变量x会得到整个块级作用域的返回值. const变量定义常量,一旦定义,不可以修改: const一旦声明变量,就必须立即初始化,不能留到以后赋值: