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 相关文章推荐
ASP.NET jQuery 实例9  通过控件hyperlink实现返回顶部效果
Feb 03 Javascript
用JQuery实现全选与取消的两种简单方法
Feb 22 Javascript
使用AngularJS和PHP的Laravel实现单页评论的方法
Jun 19 Javascript
JavaScript判断浏览器对CSS3属性是否支持的多种方法
Nov 13 Javascript
Vue中使用vux的配置详解
May 05 Javascript
Bootstrap Table使用整理(三)
Jun 09 Javascript
vue router路由嵌套不显示问题的解决方法
Jun 17 Javascript
通过示例彻底搞懂js闭包
Aug 10 Javascript
VsCode新建VueJs项目的详细步骤
Sep 23 Javascript
jQuery实现带3D切割效果的轮播图功能示例【附源码下载】
Apr 04 jQuery
node爬取新型冠状病毒的疫情实时动态
Feb 06 Javascript
javascript Number 与 Math对象的介绍
Nov 17 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
Yii2选项卡的简单使用
2017/05/26 PHP
Javascript 跨域访问解决方案
2009/02/14 Javascript
javascript 触发事件列表 比较不错
2009/09/03 Javascript
JavaScript原型继承之基础机制分析
2011/08/26 Javascript
javascript加号&quot;+&quot;的二义性说明
2013/03/04 Javascript
js 有框架页面跳转(target)三种情况下的应用
2013/04/09 Javascript
jquery异步跨域访问代码
2013/06/28 Javascript
document.write()及其输出内容的样式、位置控制
2013/08/12 Javascript
jquery实现背景墙聚光灯效果示例分享
2014/03/02 Javascript
javascript表格隔行变色加鼠标移入移出及点击效果的方法
2015/04/10 Javascript
jQuery实现延迟跳转的方法
2015/06/05 Javascript
JavaScript访问字符串中单个字符的两种方法
2015/07/03 Javascript
node.js抓取并分析网页内容有无特殊内容的js文件
2015/11/17 Javascript
AngularJS中如何使用$http对MongoLab数据表进行增删改查
2016/01/23 Javascript
JS判断字符串变量是否含有某个字串的实现方法
2016/06/03 Javascript
Vue方法与事件处理器详解
2016/12/01 Javascript
babel基本使用详解
2017/02/17 Javascript
Laravel整合Bootstrap 4的完整方案(推荐)
2018/01/25 Javascript
JavaScript数组方法的错误使用例子
2018/09/13 Javascript
Node4-5静态资源服务器实战以及优化压缩文件实例内容
2019/08/29 Javascript
详解Vue3 Composition API中的提取和重用逻辑
2020/04/29 Javascript
vue Treeselect下拉树只能选择第N级元素实现代码
2020/08/31 Javascript
Django对数据库进行添加与更新的例子
2019/07/12 Python
python适合做数据挖掘吗
2020/06/16 Python
html5 自定义播放器核心代码
2013/12/20 HTML / CSS
Sport-Thieme荷兰:购买体育用品
2019/08/25 全球购物
ABOUT YOU罗马尼亚:超过600个时尚品牌
2019/09/19 全球购物
.NET现在共支持多少种语言
2014/02/26 面试题
大学生实习证明范本
2014/01/15 职场文书
父母寄语大全
2014/04/12 职场文书
高中英语演讲稿范文
2014/04/24 职场文书
七夕情人节促销方案
2014/06/07 职场文书
辞旧迎新演讲稿
2014/09/15 职场文书
大学生求职自荐信
2015/03/24 职场文书
学校党支部承诺书
2015/04/30 职场文书
2015年手术室工作总结
2015/05/11 职场文书