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 相关文章推荐
线路分流自动跳转代码;希望对大家有用!
Dec 02 Javascript
JavaScript网页制作特殊效果用随机数
May 22 Javascript
一个网马的tips实现分析
Nov 28 Javascript
Javascript URI 解析介绍
Mar 15 Javascript
jQuery表格插件datatables用法汇总
Mar 29 Javascript
jQuery中animate()的使用方法及解决$(”body“).animate({“scrollTop”:top})不被Firefox支持的问题
Apr 04 jQuery
Array数组对象中的forEach、map、filter及reduce详析
Aug 02 Javascript
微信小程序使用swiper组件实现层叠轮播图
Nov 04 Javascript
JavaScript实现的弹出遮罩层特效经典示例【基于jQuery】
Jul 10 jQuery
基于JS实现数字动态变化显示效果附源码
Jul 18 Javascript
ligerUI的ligerDialog关闭刷新的方法
Sep 27 Javascript
Vue如何获取数据列表展示
Dec 11 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增删改查示例自己写的demo
2013/09/04 PHP
php中读写文件与读写数据库的效率比较分享
2013/10/19 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
2017/09/17 PHP
PHP实现二维数组中的查找算法小结
2018/06/09 PHP
PHP将英文数字转换为阿拉伯数字实例讲解
2019/01/28 PHP
Open and Print a Word Document
2007/06/15 Javascript
Grid得到选择行数据的方法总结
2011/01/17 Javascript
JavaScript基础知识学习笔记
2014/12/02 Javascript
JavaScript中的alert()函数使用技巧详解
2014/12/29 Javascript
Angular Module声明和获取重载实例代码
2016/09/14 Javascript
jQuery EasyUI 页面加载等待及页面等待层
2017/02/06 Javascript
使用vue-cli+webpack搭建vue开发环境的方法
2017/12/22 Javascript
jQuery中复合选择器简单用法示例
2018/03/31 jQuery
vue自定义指令实现方法详解
2019/02/11 Javascript
记一次用vue做的活动页的方法步骤
2019/04/11 Javascript
python实现ip查询示例
2014/03/26 Python
Python中使用item()方法遍历字典的例子
2014/08/26 Python
python获取标准北京时间的方法
2015/03/24 Python
使用IPython下的Net-SNMP来管理类UNIX系统的教程
2015/04/15 Python
Python sys.argv用法实例
2015/05/28 Python
Python实现字典去除重复的方法示例
2017/07/31 Python
python调用摄像头拍摄数据集
2019/06/01 Python
Selenium+Python 自动化操控登录界面实例(有简单验证码图片校验)
2019/06/28 Python
Python爬虫自动化爬取b站实时弹幕实例方法
2021/01/26 Python
彪马加拿大官网:PUMA加拿大
2018/10/04 全球购物
数据库测试通常都包括哪些方面
2015/11/30 面试题
酒店工作职员求职简历的自我评价
2013/10/23 职场文书
英语系本科生求职信范文
2013/12/18 职场文书
多媒体专业自我鉴定
2014/02/28 职场文书
授权委托书格式范文
2014/08/02 职场文书
2016党员发展对象培训心得体会
2016/01/08 职场文书
2016领导干部廉洁从政心得体会
2016/01/19 职场文书
浅谈移动端中的视口(viewport)的具体使用
2021/04/13 HTML / CSS
CSS 新特性 contain控制页面的重绘与重排问题
2021/04/30 HTML / CSS
CSS精灵图的原理与使用方法介绍
2022/03/17 HTML / CSS
苹果可能正在打击不进行更新的 App
2022/04/24 数码科技