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 相关文章推荐
js jquery做的图片连续滚动代码
Jan 06 Javascript
深入理解js promise chain
May 05 Javascript
JavaScript的Ext JS框架中的GridPanel组件使用指南
May 21 Javascript
node.js实现回调的方法示例
Mar 01 Javascript
Vue2.0 axios前后端登陆拦截器(实例讲解)
Oct 27 Javascript
详解微信UnionID作用
May 15 Javascript
JavaScript实现简单随机点名器
Nov 21 Javascript
JS实现图片切换特效
Dec 23 Javascript
详解vuejs中执行npm run dev出现页面cannot GET/问题
Apr 26 Javascript
VSCode 添加自定义注释的方法(附带红色警戒经典注释风格)
Aug 27 Javascript
解决antd 表单设置默认值initialValue后验证失效的问题
Nov 02 Javascript
你不知道的SpringBoot与Vue部署解决方案
Nov 09 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
source.php查看源文件
2006/12/09 PHP
使用PHP破解防盗链图片的一个简单方法
2014/06/07 PHP
菜单效果
2006/10/14 Javascript
ECMAScript 创建自己的js类库
2012/11/22 Javascript
js实现网页自动刷新可制作节日倒计时效果
2014/05/27 Javascript
javascript实现的右下角弹窗实例
2015/04/24 Javascript
javascript实现状态栏文字首尾相接循环滚动的方法
2015/07/22 Javascript
javascript自定义in_array()函数实现方法
2015/08/03 Javascript
js如何实现点击标签文字,文字在文本框出现
2015/08/05 Javascript
JavaScript判断数组是否存在key的简单实例
2016/08/03 Javascript
使用jQuery监听扫码枪输入并禁止手动输入的实现方法(推荐)
2017/03/21 jQuery
JS 组件系列之Bootstrap Table的冻结列功能彻底解决高度问题
2017/06/30 Javascript
不得不知的ES6小技巧
2018/07/28 Javascript
简单了解vue.js数组的常用操作
2019/06/17 Javascript
[00:43]DOTA2小紫本全民票选福利PA至宝全方位展示
2014/11/25 DOTA
python 与GO中操作slice,list的方式实例代码
2017/03/20 Python
Python基于辗转相除法求解最大公约数的方法示例
2018/04/04 Python
python使用参数对嵌套字典进行取值的方法
2019/04/26 Python
python实战串口助手_解决8串口多个发送的问题
2019/06/12 Python
python如何将多个PDF进行合并
2019/08/13 Python
Python使用matplotlib实现交换式图形显示功能示例
2019/09/06 Python
基于python解线性矩阵方程(numpy中的matrix类)
2019/10/21 Python
PyCharm2020.1.1与Python3.7.7的安装教程图文详解
2020/08/07 Python
浅谈python 类方法/静态方法
2020/09/18 Python
python报错TypeError: ‘NoneType‘ object is not subscriptable的解决方法
2020/11/05 Python
基于CSS3实现图片模糊过滤效果
2015/11/19 HTML / CSS
卡骆驰新加坡官网:Crocs新加坡
2018/06/12 全球购物
手工制作的意大利礼服鞋:Ace Marks
2018/12/15 全球购物
好家长事迹材料
2014/01/23 职场文书
《第一次抱母亲》教学反思
2014/04/16 职场文书
贷款委托书
2014/08/01 职场文书
自查自纠工作情况报告
2014/10/29 职场文书
离婚起诉书怎么写
2015/05/19 职场文书
python 三边测量定位的实现代码
2021/04/22 Python
微信小程序APP页面的之间的相互传递参数以及自定义组件
2022/04/19 Javascript