当前位置: 首页 > 编程笔记 >

ES6中let 和 const 的新特性

车嘉实
2023-03-14
本文向大家介绍ES6中let 和 const 的新特性,包括了ES6中let 和 const 的新特性的使用技巧和注意事项,需要的朋友参考一下

在javascript中,我们都知道使用var来声明变量。javascript是函数级作用域,函数内可以访问函数外的变量,函数外不能访问函数内的变量。本文给大家介绍ES6中let 和 const 的特性,具体内容如下所示:

let的特性:

1.不存在变量提升现象:即声明前使用,报ReferenceError。适用于for循环计数器。
2.暂时性死区:即在块级作用域内使用let声明变量,该变量只能在该作用域内使用。
3.不允许重复声明:let声明过的变量不能再次声明,否则报错。

const的特性:

1.不存在变量提升现象。
2.暂时性死区。
3.不可重复声明。
4.声明的是只读常量,声明时必须初始化。
5.本质保存的是内存地址,简单类型数据的值就保存在这个地址中,复合类型数据在这个地址中保存的是一个指针,这个指针指向的对象可以改变,单指针不可改变。

 cost foo = {}; 
 // 可以改变foo的属性
 foo.prop = 123;
 foo.prop //123 
 // 不可以使foo指向别的对象
 foo = {}; //TypeError: "foo" is read-only

冻结对象:

// 彻底冻结
var constantize = (obj) => {

  Object.freeze(obj); 

  Object.keys(obj).forEach( (key, i) => {

    if( typeof obj[key] === 'object' ){

     constantize( obj[key] );

    } 
  }); 
}   

总结

以上所述是小编给大家介绍的ES6中let 和 const 的特性 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!

 类似资料:
  • 本文向大家介绍ES6新特性一: let和const命令详解,包括了ES6新特性一: let和const命令详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了ES6新特性中的let和const命令。分享给大家供大家参考,具体如下: 1. let 命令 ① 在js中是没有块级作用域的,var 声明的变量作用域是整个函数体,而let可以起到这一作用 ② 而let可以起到这一作用啊在js中变量和

  • 本文向大家介绍浅谈ECMAScript6新特性之let、const,包括了浅谈ECMAScript6新特性之let、const的使用技巧和注意事项,需要的朋友参考一下 第一次写博客有点紧张,如果说的不对的地方,欢迎大家留言指正。咱们先来说说“ECMAScript”这到底是啥玩意儿?它和javascript的关系又是如何的?首先,在1996年11月的时候,javascript的创造者(网景公司Net

  • 问题内容: 我不知道是什么样的区别,并在 ES6 。两者都是块作用域的,如以下代码中的示例所示: 在ES5中,输出为: 但是在ES6中它将是: 我想知道为什么 ES6 允许更改值,问题是为什么我们现在应该使用’const’?我们可以用“ let”代替吗? 注意 :jsbin可以用于测试,选择 JavaScript 运行 ES5 代码,并选择 Traceur 使用 ES6 功能运行它。 问题答案:

  • 本文向大家介绍深入浅出ES6之let和const命令,包括了深入浅出ES6之let和const命令的使用技巧和注意事项,需要的朋友参考一下 let和const声明的变量只在代码块内有效 不存在变量提升 变量一定要在声明后使用,否则报错 不允许重复声明 块级作用域 const命令 声明一个只读的常量,一旦声明,常量的值就不能改变 一旦声明变量,就必须立即初始化,不能留到以后赋值 let命令、cons

  • let命令 基本用法 ES6新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。 { let a = 10; var b = 1; } a // ReferenceError: a is not defined. b // 1 上面代码在代码块之中,分别用let和var声明了两个变量。然后在代码块之外调用这两个变量,结果let声明的

  • 问题内容: 我玩ES6已有一段时间了,我注意到虽然用声明的变量被按预期悬挂了… …声明或似乎存在一些问题的变量: 和 这是否意味着使用或不声明的变量被吊起?这到底是怎么回事?是否有任何区别,并在此问题? 问题答案: @thefourtheye的正确说法是在声明这些变量之前 无法访问 它们。但是,这要复杂得多。 是否用或不声明变量?这到底是怎么回事? 所有声明 (,,,,,) 被“悬挂” 在Java