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 相关文章推荐
ASP.NET MVC中EasyUI的datagrid跨域调用实现代码
Mar 14 Javascript
JavaScript判断FileUpload控件上传文件类型
Sep 28 Javascript
谈谈javascript中使用连等赋值操作带来的问题
Nov 26 Javascript
jqGrid中文文档之选项设置
Dec 02 Javascript
js 输入框 正则表达式(菜鸟必看教程)
Feb 19 Javascript
微信小程序 功能函数小结(手机号验证*、密码验证*、获取验证码*)
Dec 08 Javascript
JS中appendChild追加子节点无效的解决方法
Oct 14 Javascript
从0到1搭建Element的后台框架的方法步骤
Apr 10 Javascript
微信JS-SDK实现微信会员卡功能(给用户微信卡包里发送会员卡)
Jul 25 Javascript
JS获取动态添加元素的方法详解
Jul 31 Javascript
vue页面跳转实现页面缓存操作
Jul 22 Javascript
vue 图片裁剪上传组件的实现
Nov 12 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
function.inc.php超越php
2006/12/09 PHP
Centos6.5和Centos7 php环境搭建方法
2016/05/27 PHP
filemanage功能中用到的lib.js
2007/04/08 Javascript
JavaScript入门教程(2) JS基础知识
2009/01/31 Javascript
javascript 全等号运算符使用说明
2010/05/31 Javascript
jquery淡化版banner异步图片文字效果切换图片特效
2014/04/08 Javascript
jquery append()方法与html()方法的区别及使用介绍
2014/08/01 Javascript
Nodejs关于gzip/deflate压缩详解
2015/03/04 NodeJs
js格式化时间的方法
2015/12/18 Javascript
JS实用的带停顿的逐行文本循环滚动效果实例
2016/11/23 Javascript
js实现贪吃蛇小游戏(容易理解)
2017/01/22 Javascript
详解nodejs微信公众号开发——3.封装消息响应模块
2017/04/10 NodeJs
原生JS实现隐藏显示图片 JS实现点击切换图片效果
2021/01/27 Javascript
微信小程序分享功能之按钮button 边框隐藏和点击隐藏
2018/06/14 Javascript
详解angular2.x创建项目入门指令
2018/10/11 Javascript
python使用PyCharm进行远程开发和调试
2017/11/02 Python
简单了解什么是神经网络
2017/12/23 Python
python如何实现一个刷网页小程序
2018/11/27 Python
pycharm配置git(图文教程)
2019/08/16 Python
tensorflow 固定部分参数训练,只训练部分参数的实例
2020/01/20 Python
Python3之乱码\xe6\x97\xa0\xe6\xb3\x95处理方式
2020/05/11 Python
Python基于gevent实现高并发代码实例
2020/05/15 Python
python logging模块的使用
2020/09/07 Python
Ubuntu权限不足无法创建文件夹解决方案
2020/11/14 Python
Pycharm制作搞怪弹窗的实现代码
2021/02/19 Python
Bonprix法国:时尚、鞋子、家居
2020/12/29 全球购物
毕业自我鉴定
2013/11/05 职场文书
报关报检委托书
2014/04/08 职场文书
签约仪式策划方案
2014/06/02 职场文书
物理学专业求职信
2014/07/04 职场文书
公安四风对照检查材料思想汇报
2014/10/11 职场文书
2014年结对帮扶工作总结
2014/12/17 职场文书
中职班主任培训心得体会
2016/01/07 职场文书
关于职业道德的心得体会
2016/01/18 职场文书
导游词之湖州-太湖
2019/10/11 职场文书
springboot拦截器无法注入redisTemplate的解决方法
2021/06/27 Java/Android