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宝典学习笔记
Feb 07 Javascript
使用JQUERY Tabs插件宿主IFRAMES
Jan 01 Javascript
情人节之礼 js项链效果
Feb 13 Javascript
js字符串完全替换函数分享
Dec 03 Javascript
分享我对JS插件开发的一些感想和心得
Feb 04 Javascript
使用postMesssage()实现iframe跨域页面间的信息传递
Mar 29 Javascript
微信小程序实战之自定义toast(6)
Apr 18 Javascript
详解vue-cli快速构建vue应用并实现webpack打包
Dec 13 Javascript
浅谈Angular 的变化检测的方法
Mar 01 Javascript
使用javascript做时间倒数读秒功能的实例
Jan 23 Javascript
微信小程序报错: thirdScriptError的错误问题
Jun 19 Javascript
vue自定义插件封装,实现简易的elementUi的Message和MessageBox的示例
Nov 20 Vue.js
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
我的群发邮件程序
2006/10/09 PHP
PHP 反射机制实现动态代理的代码
2008/10/22 PHP
PHP将HTML转换成文本的实现代码
2015/01/21 PHP
php获取本周开始日期和结束日期的方法
2015/03/09 PHP
php实现对两个数组进行减法操作的方法
2015/04/17 PHP
学习php设计模式 php实现观察者模式(Observer)
2015/12/09 PHP
JS target与currentTarget区别说明
2011/08/28 Javascript
node.js适合游戏后台开发吗?
2014/09/03 Javascript
jQuery中append()方法用法实例
2015/01/08 Javascript
js的for in循环和java里foreach循环的区别分析
2015/01/28 Javascript
简介JavaScript中setUTCSeconds()方法的使用
2015/06/12 Javascript
JS基于myFocus库实现各种功能的tab选项卡切换效果
2015/09/19 Javascript
详解Layer弹出层样式
2017/08/21 Javascript
BootStrap模态框不垂直居中的解决方法
2017/10/19 Javascript
vue中手机号,邮箱正则验证以及60s发送验证码的实例
2018/03/16 Javascript
layui实现动态和静态分页
2018/04/28 Javascript
深入理解JS中Number(),parseInt(),parseFloat()三者比较
2018/08/24 Javascript
详解JavaScript匿名函数和闭包
2020/07/10 Javascript
Python实现计算最小编辑距离
2016/03/17 Python
详解pandas.DataFrame中删除包涵特定字符串所在的行
2019/04/04 Python
详解python--模拟轮盘抽奖游戏
2019/04/12 Python
Python 获取项目根路径的代码
2019/09/27 Python
TensorFLow 变量命名空间实例
2020/02/11 Python
Python如何发送与接收大型数组
2020/08/07 Python
详解CSS3选择器的使用方法汇总
2015/11/24 HTML / CSS
瑞典手机壳品牌:Richmond & Finch
2018/04/28 全球购物
沃尔玛旗下墨西哥超市:Bodega Aurrera
2020/11/13 全球购物
关键字throw与throws的用法差异
2016/11/22 面试题
幼儿园教师培训方案
2014/02/04 职场文书
乡镇遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
讲座通知范文
2015/04/23 职场文书
升学宴来宾致辞
2015/07/27 职场文书
2015年十月一日放假通知
2015/08/18 职场文书
导游词书写之黄山
2019/08/06 职场文书
MySQL 使用SQL语句修改表名的实现
2021/04/07 MySQL
基于Go语言构建RESTful API服务
2021/07/25 Golang