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 分页控件实现代码
Nov 30 Javascript
FireFox下XML对象转化成字符串的解决方法
Dec 09 Javascript
通过jquery还原含有rowspan、colspan的table的实现方法
Feb 10 Javascript
js控制CSS样式属性语法对照表
Dec 11 Javascript
jQuery基于当前元素进行下一步的遍历
May 20 Javascript
jquery实现简单的表单验证
Nov 17 Javascript
Jquery-1.9.1源码分析系列(十一)之DOM操作
Nov 25 Javascript
React-Native 组件之 Modal的使用详解
Aug 08 Javascript
angular写一个列表的选择全选交互组件的示例
Jan 22 Javascript
JS实现百度网盘任意文件强制下载功能
Aug 31 Javascript
three.js实现炫酷的全景3D重力感应
Dec 30 Javascript
iSlider手机端图片滑动切换插件使用详解
Dec 24 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
使用adodb lite解决问题
2006/12/31 PHP
destoon实现资讯信息前面调用它所属分类的方法
2014/07/15 PHP
分享常见的几种页面静态化的方法
2015/01/08 PHP
Yii2 加载css、js 载静态资源的方法
2017/03/10 PHP
详解php中serialize()和unserialize()函数
2017/07/08 PHP
php设计模式之观察者模式定义与用法经典示例
2019/09/19 PHP
javascript支持firefox,ie7页面布局拖拽效果代码
2007/12/20 Javascript
js模拟类继承小例子
2010/07/17 Javascript
jQuery的each终止或跳过示例代码
2013/12/12 Javascript
Javascript小技巧之生成html元素
2014/05/15 Javascript
两种方法实现在HTML页面加载完毕后运行某个js
2014/06/16 Javascript
jquery实现多行文字图片滚动效果示例代码
2014/10/10 Javascript
Thinkphp模板没有解析直接原样输出的解决方法
2014/10/31 Javascript
JavaScript如何一次性展示几万条数据
2017/03/30 Javascript
React 组件渲染和更新的实现代码示例
2019/02/21 Javascript
Vue.js递归组件实现组织架构树和选人功能
2019/07/04 Javascript
javascript/jquery实现点击触发事件的方法分析
2019/11/11 jQuery
python网络编程学习笔记(一)
2014/06/09 Python
Python实现简单的文本相似度分析操作详解
2018/06/16 Python
python列表使用实现名字管理系统
2019/01/30 Python
Python实现一个简单的递归下降分析器
2020/08/01 Python
简述python Scrapy框架
2020/08/17 Python
Python-split()函数实例用法讲解
2020/12/18 Python
利用 CSS3 实现的无缝轮播功能代码
2017/09/25 HTML / CSS
什么是"引用"?申明和使用"引用"要注意哪些问题?
2016/03/03 面试题
在校生钳工实习自我鉴定
2013/09/19 职场文书
光电信息专业应届生求职信
2013/10/07 职场文书
汽车维修与检测专业应届生求职信
2013/11/12 职场文书
大学生学业生涯规划
2014/01/05 职场文书
《小山羊和小灰兔》教学反思
2014/02/19 职场文书
乡镇干部个人对照检查材料(群众路线)
2014/09/26 职场文书
入股合作协议书
2014/10/12 职场文书
五年级下册复习计划
2015/01/19 职场文书
2016计划生育先进个人事迹材料
2016/02/29 职场文书
演讲稿之感恩老师(三篇范文)
2019/09/06 职场文书
用python删除文件夹中的重复图片(图片去重)
2021/05/12 Python