ES6中let 和 const 的新特性


Posted in Javascript onSeptember 03, 2018

在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 的特性 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
js 自制滚动条的小例子
Mar 16 Javascript
Extjs Label的 fieldLabel和html属性值对齐的方法
Jun 15 Javascript
node.js中的buffer.length方法使用说明
Dec 14 Javascript
JavaScript实现的双向跨域插件分享
Jan 31 Javascript
JQuery中Text方法用法实例分析
May 18 Javascript
javascript函数式编程程序员的工具集
Oct 11 Javascript
Vue.js每天必学之构造器与生命周期
Sep 05 Javascript
Vue.js计算属性computed与watch(5)
Dec 09 Javascript
原生js获取浏览器窗口及元素宽高常用方法集合
Jan 18 Javascript
vue-cli实现多页面多路由的示例代码
Jan 30 Javascript
vue利用v-for嵌套输出多层对象,分别输出到个表的方法
Sep 07 Javascript
解决v-for中使用v-if或者v-bind:class失效的问题
Sep 25 Javascript
Angular项目如何升级至Angular6步骤全纪录
Sep 03 #Javascript
vue 中滚动条始终定位在底部的方法
Sep 03 #Javascript
前后端如何实现登录token拦截校验详解
Sep 03 #Javascript
vue移动端监听滚动条高度的实现方法
Sep 03 #Javascript
vue 纯js监听滚动条到底部的实例讲解
Sep 03 #Javascript
解决vue.js this.$router.push无效的问题
Sep 03 #Javascript
JavaScript封装的常用工具类库bee.js用法详解【经典类库】
Sep 03 #Javascript
You might like
php 之 没有mysql支持时的替代方案
2006/10/09 PHP
PHP下利用header()函数设置浏览器缓存的代码
2010/09/01 PHP
php中可能用来加密字符串的函数[base64_encode、urlencode、sha1]
2012/01/16 PHP
php数据类型判断函数有哪些
2013/09/23 PHP
php+mysql数据库查询实例
2015/01/21 PHP
Laravel 6 将新增为指定队列任务设置中间件的功能
2019/08/06 PHP
csdn 批量接受好友邀请
2009/02/19 Javascript
仅用[]()+!等符号就足以实现几乎任意Javascript代码
2010/03/01 Javascript
FireFox下XML对象转化成字符串的解决方法
2011/12/09 Javascript
js通过元素class名字获取元素集合的具体实现
2014/01/06 Javascript
javascript动态添加删除tabs标签的方法
2015/07/06 Javascript
实例详解jQuery结合GridView控件的使用方法
2016/01/04 Javascript
基于JavaScript实现飘落星星特效
2017/08/10 Javascript
利用vue和element-ui设置表格内容分页的实例
2018/03/02 Javascript
Nodejs Express 通过log4js写日志到Logstash(ELK)
2018/08/30 NodeJs
vue+element UI实现树形表格带复选框的示例代码
2019/04/16 Javascript
js+springMVC 提交数组数据到后台的实例
2019/09/21 Javascript
详解vue中在循环中使用@mouseenter 和 @mouseleave事件闪烁问题解决方法
2020/04/07 Javascript
如何利用JavaScript编写更好的条件语句详解
2020/08/10 Javascript
Python IDE PyCharm的基本快捷键和配置简介
2015/11/04 Python
深入解析Python中的线程同步方法
2016/06/14 Python
python判断单向链表是否包括环,若包含则计算环入口的节点实例分析
2019/10/23 Python
使用python远程操作linux过程解析
2019/12/04 Python
OpenCV 之按位运算举例解析
2020/06/19 Python
Python使用文件操作实现一个XX信息管理系统的示例
2020/07/02 Python
详解基于Facecognition+Opencv快速搭建人脸识别及跟踪应用
2021/01/21 Python
台湾SHOPRO购物行家:亚洲首创影视.3C.家电.优质购物平台
2018/05/07 全球购物
Christys’ Hats官网:英国帽子制造商
2018/11/28 全球购物
俄罗斯运动、健康和美容产品在线商店:Lactomin.ru
2020/07/23 全球购物
生产部厂长职位说明书
2014/03/03 职场文书
学习十八大的心得体会
2014/09/01 职场文书
团组织关系介绍信
2019/06/24 职场文书
导游词之新疆-喀纳斯
2019/10/10 职场文书
python基于tkinter制作m3u8视频下载工具
2021/04/24 Python
如何理解python接口自动化之logging日志模块
2021/06/15 Python
如何使用注解方式实现 Redis 分布式锁
2022/07/23 Redis