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方法+js一般方法+js面向对象方法实现拖拽效果
Aug 30 Javascript
JavaScript去除空格的三种方法(正则/传参函数/trim)
Feb 06 Javascript
控制页面按钮在后台执行期间不重复提交的JS方法
Jun 24 Javascript
在javascript中执行任意html代码的方法示例解读
Dec 25 Javascript
jquery判断至少有一个checkbox被选中的方法
Jun 05 Javascript
javascript创建动态表单的方法
Jul 25 Javascript
3种js实现string的substring方法
Nov 09 Javascript
Jquery Mobile 自定义按钮图标
Nov 18 Javascript
jQuery常用的一些技巧汇总
Mar 26 Javascript
微信小程序实现传参数的几种方法示例
Jan 10 Javascript
webpack配置导致字体图标无法显示的解决方法
Mar 06 Javascript
怎么使用javascript深度拷贝一个数组
Jun 06 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删除左端与右端空格的方法
2014/11/29 PHP
利用php做服务器和web前端的界面进行交互
2016/10/31 PHP
js 无提示关闭浏览器页面的代码
2010/03/09 Javascript
禁止IE用右键的JS代码
2013/12/30 Javascript
浅谈javascript的调试
2015/01/28 Javascript
使用HTML+CSS+JS制作简单的网页菜单界面
2015/07/27 Javascript
js实现下拉列表选中某个值的方法(3种方法)
2015/12/17 Javascript
JavaScript基础知识点归纳(推荐)
2016/07/09 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(放大缩小)
2016/12/02 Javascript
BootStrap表单时间选择器详解
2017/05/09 Javascript
Node.js 回调函数实例详解
2017/07/06 Javascript
Angular网络请求的封装方法
2018/05/22 Javascript
Vue中使用vux配置代码详解
2018/09/16 Javascript
30分钟快速实现小程序语音识别功能
2018/11/27 Javascript
javascript判断一个变量是数组还是对象
2019/04/10 Javascript
JavaScript学习教程之cookie与webstorage
2019/06/23 Javascript
vue 翻页组件vue-flip-page效果
2020/02/05 Javascript
vue+koa2搭建mock数据环境的详细教程
2020/05/18 Javascript
Nuxt.js的路由跳转操作(页面跳转nuxt-link)
2020/11/06 Javascript
linux系统使用python获取cpu信息脚本分享
2014/01/15 Python
Django1.7+python 2.78+pycharm配置mysql数据库
2016/10/09 Python
酷! 程序员用Python带你玩转冲顶大会
2018/01/17 Python
Python OOP类中的几种函数或方法总结
2019/02/22 Python
python 用所有标点符号分隔句子的示例
2019/07/15 Python
用Python调用win命令行提高工作效率的实例
2019/08/14 Python
布鲁明戴尔百货店:Bloomingdale’s
2016/12/21 全球购物
Expedia印度尼西亚站:预订酒店、廉价航班和度假套餐
2018/01/31 全球购物
FILA德国官方网站:来自意大利的体育和街头服饰品牌
2019/07/19 全球购物
Pamela Love官网:纽约设计师Pamela Love的精美、时尚和穿孔珠宝
2020/10/19 全球购物
商务日语毕业生自荐信范文
2013/11/14 职场文书
简历中求职的个人自我评价
2013/12/03 职场文书
年终奖发放方案
2014/06/02 职场文书
2015年教研员工作总结
2015/05/26 职场文书
公务员处分决定书
2015/06/25 职场文书
详解Vue slot插槽
2021/11/20 Vue.js
mysql 乱码 字符集latin1转UTF8
2022/04/19 MySQL