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 自动完成 AutoComplete(Ajax 查询)
Jul 07 Javascript
基于Jquery的动态创建DOM元素的代码
Dec 28 Javascript
JavaScript中的闭包(Closure)详细介绍
Dec 30 Javascript
使用jquery实现仿百度自动补全特效
Jul 23 Javascript
探索angularjs+requirejs全面实现按需加载的套路
Feb 26 Javascript
Bootstrap按钮下拉菜单组件详解
May 10 Javascript
js匿名函数作为函数参数详解
Jun 01 Javascript
RequireJs的使用详解
Feb 19 Javascript
Vue.js结合Ueditor富文本编辑器的实例代码
Jul 11 Javascript
JS实现点击按钮可实现编辑功能
Jul 03 Javascript
Iview Table组件中各种组件扩展的使用
Oct 20 Javascript
react-native 实现购物车滑动删除效果的示例代码
Jan 15 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中用接口、抽象类、普通基类实现“面向接口编程”与“耦合方法”简述
2011/03/23 PHP
PHP7匿名类用法分析
2016/09/26 PHP
PHP/HTML混写的四种方式总结
2017/02/27 PHP
Yii框架中用response保存cookie,用request读取cookie的原理解析
2019/09/04 PHP
js压缩工具 yuicompressor 使用教程
2010/03/31 Javascript
Javascript学习笔记二 之 变量
2010/12/15 Javascript
浅谈Javascript鼠标和滚轮事件
2012/06/27 Javascript
javascript编码的几个方法详细介绍
2013/01/06 Javascript
js字符串转换成数字与数字转换成字符串的实现方法
2014/01/08 Javascript
jquery实现标签支持图文排列带上下箭头按钮的选项卡
2015/03/14 Javascript
JavaScript中setMonth()方法的使用详解
2015/06/11 Javascript
Js删除数组中某一项或几项的几种方法(推荐)
2016/07/27 Javascript
BootStrap表单时间选择器详解
2017/05/09 Javascript
jQuery.ajax向后台传递数组问题的解决方法
2017/05/12 jQuery
vue主动刷新页面及列表数据删除后的刷新实例
2018/09/16 Javascript
Koa从零搭建到Api实现项目的搭建方法
2019/07/30 Javascript
vue之延时刷新实例
2019/11/14 Javascript
[40:13]Ti4 冒泡赛第二天 iG vs NEWBEE 2
2014/07/15 DOTA
Python实现Const详解
2015/01/27 Python
详解Python 2.6 升级至 Python 2.7 的实践心得
2017/04/27 Python
Python实现的rsa加密算法详解
2018/01/24 Python
浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)
2018/04/10 Python
使用python的pandas库读取csv文件保存至mysql数据库
2018/08/20 Python
Python 如何提高元组的可读性
2019/08/26 Python
python中struct模块之字节型数据的处理方法
2019/08/27 Python
如何在django中运行scrapy框架
2020/04/22 Python
Python中logger日志模块详解
2020/08/04 Python
Notino希腊:购买香水和美容产品
2019/07/25 全球购物
abstract class和interface有什么区别?
2012/01/03 面试题
幼儿园园长岗位职责
2013/11/26 职场文书
毕业生自我鉴定
2013/12/04 职场文书
新领导上任欢迎词
2014/01/13 职场文书
清明节演讲稿
2014/05/27 职场文书
大学生实习证明范文(5篇)
2014/09/18 职场文书
中标通知书
2015/04/17 职场文书
优秀党员先进事迹材料2016
2016/02/29 职场文书