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 09 Javascript
利用原生JavaScript获取元素样式只是获取而已
Oct 08 Javascript
JQuery中两个ul标签的li互相移动实现方法
May 18 Javascript
jQuery+ajax实现文章点赞功能的方法
Dec 31 Javascript
JavaScript中匿名函数的用法及优缺点详解
Jun 01 Javascript
再谈Javascript中的基本类型和引用类型(推荐)
Jul 01 Javascript
jQuery实现输入框邮箱内容自动补全与上下翻动显示效果【附demo源码下载】
Sep 20 Javascript
Vue.js 插件开发详解
Mar 29 Javascript
详解vue-cli 快速搭建单页应用之遇到的问题及解决办法
Mar 01 Javascript
AjaxUpLoad.js实现文件上传功能
Mar 02 Javascript
详解微信小程序实现WebSocket心跳重连
Jul 31 Javascript
微信jssdk逻辑在vue中的运用详解
Nov 14 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下实现一个阿拉伯数字转中文数字的函数
2008/07/10 PHP
php+mysql删除指定编号员工信息的方法
2015/01/14 PHP
php的闭包(Closure)匿名函数详解
2015/02/22 PHP
php使用curl代理实现抓取数据的方法
2017/02/03 PHP
php实现微信模拟登陆、获取用户列表及群发消息功能示例
2017/06/28 PHP
PHP5.5新特性之yield理解与用法实例分析
2019/01/11 PHP
Javascript String对象扩展HTML编码和解码的方法
2009/06/02 Javascript
基于jquery的滑动样例代码
2010/11/20 Javascript
js中eval详解
2012/03/30 Javascript
js实现动态显示时间效果
2017/03/06 Javascript
原生JS发送异步数据请求
2017/06/08 Javascript
js实现移动端导航点击自动滑动效果
2017/07/18 Javascript
基于input框覆盖掉数字英文的实例讲解
2017/07/21 Javascript
详解Javascript 中的 class、构造函数、工厂函数
2017/12/20 Javascript
解决Nodejs全局安装模块后找不到命令的问题
2018/05/15 NodeJs
vue组件实现进度条效果
2018/06/06 Javascript
Vue与Node.js通过socket.io通信的示例代码
2018/07/25 Javascript
在Create React App中使用CSS Modules的方法示例
2019/01/15 Javascript
js判断非127开头的IP地址的实例代码
2020/01/05 Javascript
Python多线程下载文件的方法
2015/07/10 Python
Python简单定义与使用字典dict的方法示例
2017/07/25 Python
基于python中staticmethod和classmethod的区别(详解)
2017/10/24 Python
TensorFlow在MAC环境下的安装及环境搭建
2017/11/14 Python
python使用opencv按一定间隔截取视频帧
2018/03/06 Python
python随机生成大小写字母数字混合密码(仅20行代码)
2020/02/01 Python
Python matplotlib画图时图例说明(legend)放到图像外侧详解
2020/05/16 Python
python实现测试工具(一)——命令行发送get请求
2020/10/19 Python
西班牙国家航空官方网站:Iberia
2017/11/16 全球购物
NFL欧洲商店(德国):NFL Europe Shop DE
2018/11/03 全球购物
职业培训师职业生涯规划
2014/02/18 职场文书
实习单位证明范例
2014/11/17 职场文书
2015毕业生实习期工作总结
2015/04/09 职场文书
大学生暑期实践报告
2015/07/13 职场文书
2016年大学生就业指导课心得体会
2015/10/09 职场文书
html+css实现文字折叠特效实例
2021/06/02 HTML / CSS
Java死锁的排查
2022/05/11 Java/Android