ES6新特性一: let和const命令详解


Posted in Javascript onApril 20, 2017

本文实例讲述了ES6新特性中的let和const命令。分享给大家供大家参考,具体如下:

1. let 命令

① 在js中是没有块级作用域的,var 声明的变量作用域是整个函数体,而let可以起到这一作用

{
  let a = 1;
  var b = 2;
}
console.log(b); // 2
console.log(a); // a is not defind

② 而let可以起到这一作用啊在js中变量和函数的声明会提升到当前作用域最顶部执行。这样就会出现问题。

var a = [];
//函数和变量i会最先进行声明,同时全局变量i经过for循环赋值为10
for (var i = 0; i < 10; i++) {
  a[i] = function () {
    console.log(i);
  };
}
console.log(i);//10
a[6]();//10

而使用let就解决了这个问题

for (let i = 0; i < 10; i++) {
  a[i] = function () {
    console.log(i);
  };
}
a[6](); //6

③ let不像var那样,会发生“变量提升”现象

console.log(a); // a is not defined
let a = 1;

④ let不允许在相同块级作用域内,重复声明同一个变量

// 报错
{
  let a = 10;
  var a = 1;
}
// 报错
{
  let a = 10;
  let a = 1;
}

2. const 命令

① const也用来声明变量,但是声明的是常量。一旦声明,常量的值就不能改变。
② 与let相同也不能在相同块级作用域内重复声明同一个变量。
③ const的作用域与let命令相同:只在声明所在的块级作用域内有效。

const PI = 3.1415;
console.log(PI); // 3.1415
//PI = 3; // Assignment to constant variable.(不能给常量赋值)
//const PI = 3.1;// Identifier 'PI' has already been declared

希望本文所述对大家ECMAScript程序设计有所帮助。

Javascript 相关文章推荐
style、 currentStyle、 runtimeStyle区别分析
Aug 01 Javascript
基于jquery的回到页面顶部按钮
Jun 27 Javascript
点击进行复制的JS代码实例
Aug 23 Javascript
js 定时器setTimeout无法调用局部变量的解决办法
Nov 28 Javascript
jQuery中bind与live的用法及区别小结
Jan 27 Javascript
js事件绑定快捷键以ctrl+k为例
Sep 30 Javascript
js动态生成Html元素实现Post操作(createElement)
Sep 14 Javascript
轻松学习jQuery插件EasyUI EasyUI实现拖放商品放置购物车
Nov 30 Javascript
使用node.js对音视频文件加密的实例代码
Aug 30 Javascript
浅谈React和Redux的连接react-redux
Dec 04 Javascript
swiper移动端轮播插件(触碰图片之后停止轮播)
Dec 28 Javascript
浅谈javascript如何获取文件后缀名
Aug 07 Javascript
javascript 正则表达式分组、断言详解
Apr 20 #Javascript
jQuery插件FusionCharts绘制的3D双柱状图效果示例【附demo源码】
Apr 20 #jQuery
JS利用cookies设置每隔24小时弹出框
Apr 20 #Javascript
一篇看懂vuejs的状态管理神器 vuex状态管理模式
Apr 20 #Javascript
addEventListener()与removeEventListener()解析
Apr 20 #Javascript
详解用vue-cli来搭建vue项目和webpack
Apr 20 #Javascript
js禁止浏览器的回退事件
Apr 20 #Javascript
You might like
使用php语句将数据库*.sql文件导入数据库
2014/05/05 PHP
PHP错误Allowed memory size of 67108864 bytes exhausted的3种解决办法
2014/07/28 PHP
PHP执行linux命令常用函数汇总
2016/02/02 PHP
服务端 VBScript 与 JScript 几个相同特性的写法 By shawl.qiu
2007/03/06 Javascript
IE bug table元素的innerHTML
2010/01/11 Javascript
一个简单的实现下拉框多选的插件可移植性比较好
2014/05/05 Javascript
jQuery如何获取同一个类标签的所有值(默认无法获取)
2014/09/25 Javascript
Javascript中的关键字和保留字整理
2014/10/16 Javascript
Angularjs整合微信UI(weui)
2016/03/15 Javascript
JavaScript基础教程——入门必看篇
2016/05/20 Javascript
javascript如何创建对象
2016/08/29 Javascript
原生JS实现首页进度加载动画
2016/09/14 Javascript
bootstrap fileinput完整实例分享
2016/11/08 Javascript
详解微信小程序 页面跳转 传递参数
2016/12/08 Javascript
jQuery中绑定事件bind() on() live() one()的异同
2017/02/23 Javascript
JS基于面向对象实现的多个倒计时器功能示例
2017/02/28 Javascript
Angular2 父子组件数据通信实例
2017/06/22 Javascript
vue的无缝滚动组件vue-seamless-scroll实例
2017/12/18 Javascript
基于vue 开发中出现警告问题去除方法
2018/01/25 Javascript
Vue项目中ESlint规范示例代码
2019/07/04 Javascript
用TensorFlow实现多类支持向量机的示例代码
2018/04/28 Python
Python实现的读取文件内容并写入其他文件操作示例
2019/04/09 Python
Python 从attribute到property详解
2020/03/05 Python
pycharm第三方库安装失败的问题及解决经验分享
2020/05/09 Python
Django mysqlclient安装和使用详解
2020/09/17 Python
英国领先的亚洲旅游专家:Wendy Wu Tours
2018/01/21 全球购物
俄罗斯金苹果网上化妆品和香水商店:Goldapple
2019/12/01 全球购物
俄罗斯家居用品购物网站:Евродом
2020/11/21 全球购物
推广普通话演讲稿
2014/05/23 职场文书
网络文明传播志愿者活动方案
2014/08/20 职场文书
党员批评与自我批评范文
2014/09/23 职场文书
全国法院系统开展党的群众路线教育实践活动综述(全文)
2014/10/25 职场文书
社区工作者个人总结
2015/02/28 职场文书
试用期辞职信范文
2015/03/02 职场文书
2015年公司保安年终工作总结
2015/05/14 职场文书
python 自动刷新网页的两种方法
2021/04/20 Python