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 相关文章推荐
JQuery动画与特效实例分析
Feb 02 Javascript
jQuery实现Div拖动+键盘控制综合效果的方法
Mar 10 Javascript
HTML5使用DeviceOrientation实现摇一摇功能
Jun 05 Javascript
JavaScript电子时钟倒计时第二款
Jan 10 Javascript
浅谈Angular的$q, defer, promise
Dec 20 Javascript
浅谈regExp的test方法取得的值变化的原因及处理方法
Mar 01 Javascript
使用Bootstrap4 + Vue2实现分页查询的示例代码
Dec 21 Javascript
node实现socket链接与GPRS进行通信的方法
May 20 Javascript
Vue 2.0双向绑定原理的实现方法
Oct 23 Javascript
JavaScript监听触摸事件代码实例
Dec 30 Javascript
vue中实现拖动调整左右两侧div的宽度的示例代码
Jul 22 Javascript
Vue js with语句原理及用法解析
Sep 03 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作的文本留言本的例子(三)
2006/10/09 PHP
简体中文转换为繁体中文的PHP函数
2006/10/09 PHP
探讨:如何通过stats命令分析Memcached的内部状态
2013/06/14 PHP
PHP基于DOMDocument解析和生成xml的方法分析
2017/07/17 PHP
PHP __call()方法实现委托示例
2019/05/20 PHP
MacOS下PHP7.1升级到PHP7.4.15的方法
2021/02/22 PHP
可输入的下拉框
2006/06/19 Javascript
基于jQuery的前端数据通用验证库
2011/08/08 Javascript
JavaScript mapreduce工作原理简析
2012/11/25 Javascript
js获得当前时区夏令时发生和终止的时间代码
2014/02/23 Javascript
JavaScript中this关键词的使用技巧、工作原理以及注意事项
2014/05/20 Javascript
JavaScript实现的圆形浮动标签云效果实例
2015/08/06 Javascript
javascript中Array()数组函数详解
2015/08/23 Javascript
谈谈我对JavaScript中typeof和instanceof的深入理解
2015/12/25 Javascript
AngularJS实现根据变量改变动态加载模板的方法
2016/11/04 Javascript
微信小程序 开发之滑块视图容器(swiper)详解及实例代码
2017/02/22 Javascript
十大热门的JavaScript框架和库
2017/03/21 Javascript
Vue render渲染时间戳转时间,时间转时间戳及渲染进度条效果
2018/07/27 Javascript
一个手写的vue放大镜效果
2019/08/09 Javascript
JavaScript中的this妙用实例分析
2020/05/09 Javascript
JavaScript如何使用插值实现图像渐变
2020/06/28 Javascript
JS中锚点链接点击平滑滚动并自由调整到顶部位置
2021/02/06 Javascript
[20:21]《一刀刀一天》第十六期:TI国际邀请赛正式打响,总奖金超过550万
2014/05/23 DOTA
浅谈Python对内存的使用(深浅拷贝)
2018/01/17 Python
基于Python实现下载网易音乐代码实例
2020/08/10 Python
用HTML5制作一个简单的桌球游戏的教程
2015/05/12 HTML / CSS
英国领先的男士美容护发用品公司:Mankind
2016/08/31 全球购物
英国豪华装饰照明品牌的在线零售商:Inspyer Lighting
2019/12/10 全球购物
会计主管岗位职责
2014/01/03 职场文书
管理专员自荐信
2014/01/26 职场文书
工程专业求职自荐书范文
2014/02/08 职场文书
学生犯错保证书
2015/05/09 职场文书
防卫过当辩护词
2015/05/21 职场文书
党员学习中国梦心得体会
2016/01/05 职场文书
创业计划书之个人工作室
2019/08/22 职场文书
CSS实现渐变色边框(Gradient borders)的5种方法
2022/03/25 HTML / CSS