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的一句代码实现表格的简单筛选
Jul 26 Javascript
Jquery中的层次选择器与find()的区别示例介绍
Feb 20 Javascript
jQuery scroll事件实现监控滚动条分页示例
Apr 04 Javascript
IE中的File域无法清空使用jQuery重设File域
Apr 24 Javascript
js获取select默认选中的Option并不是当前选中值
May 07 Javascript
基于jquery插件实现拖拽删除图片功能
Aug 27 Javascript
Javascript中prototype的使用详解
Jun 18 Javascript
jQuery在header中设置请求信息的方法
Mar 06 Javascript
Node.js 实现简单的接口服务器的实例代码
May 23 Javascript
vuejs点击class变化的实例
Sep 05 Javascript
详解vue后台系统登录态管理
Apr 02 Javascript
Openlayers绘制地图标注
Sep 28 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
解决中英文字符串长度问题函数
2007/01/16 PHP
PHP操作数组的一些函数整理介绍
2011/07/17 PHP
phpmailer发送gmail邮件实例详解
2013/06/24 PHP
php fread读取文件注意事项
2016/09/24 PHP
利用phpexcel对数据库数据的导入excel(excel筛选)、导出excel
2017/04/27 PHP
php获取微信基础接口凭证Access_token
2018/08/23 PHP
json格式化/压缩工具 Chrome插件扩展版
2010/05/25 Javascript
jquery中$.post()方法的简单实例
2014/02/04 Javascript
JavaScript实现的SHA-1加密算法完整实例
2016/02/02 Javascript
Adapter适配器模式在JavaScript设计模式编程中的运用分析
2016/05/18 Javascript
jquery把int类型转换成字符串类型的方法
2016/10/07 Javascript
Vue 仿百度搜索功能实现代码
2017/02/16 Javascript
AngularJs分页插件使用详解
2018/06/30 Javascript
使用Vue 实现滑动验证码功能
2019/06/27 Javascript
详解基于 Node.js 的轻量级云函数功能实现
2019/07/08 Javascript
微信提示 在浏览器打开 效果实现过程解析
2019/09/10 Javascript
vue使用transition组件动画效果的实例代码
2021/01/28 Vue.js
[43:48]Ti4正赛第一天 VG vs NEWBEE 2
2014/07/19 DOTA
python获取远程图片大小和尺寸的方法
2015/03/26 Python
Python实现字符串匹配算法代码示例
2017/12/05 Python
Pandas GroupBy对象 索引与迭代方法
2018/11/16 Python
Python利用heapq实现一个优先级队列的方法
2019/02/03 Python
python 实现将文件或文件夹用相对路径打包为 tar.gz 文件的方法
2019/06/10 Python
对Python函数设计规范详解
2019/07/19 Python
python字典的遍历3种方法详解
2019/08/10 Python
Python实现我的世界小游戏源代码
2021/03/02 Python
HTML5给汉字加拼音收起展开组件的实现代码
2020/04/08 HTML / CSS
英国百安居装饰建材网上超市:B&Q
2016/09/13 全球购物
物流专业大学生求职信范文
2013/10/28 职场文书
培训讲师邀请函
2014/01/10 职场文书
贷款担保申请书
2014/05/20 职场文书
银行反洗钱宣传活动总结
2015/05/08 职场文书
高中议论文(范文2篇)
2019/08/19 职场文书
致男子1500米运动员的广播稿
2019/11/08 职场文书
JDBC连接的六步实例代码(与mysql连接)
2021/05/12 MySQL
还在手动盖楼抽奖?教你用Python实现自动评论盖楼抽奖(一)
2021/06/07 Python