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 相关文章推荐
解决IE下select标签innerHTML插入option的BUG(兼容IE,FF,Opera,Chrome,Safari)
May 13 Javascript
通过Javascript将数据导出到外部Excel文档的函数代码
Jun 15 Javascript
js原生appendChild的bug解决心得分享
Jul 01 Javascript
AngularJS基础知识
Dec 21 Javascript
使用javascript实现判断当前浏览器
Apr 14 Javascript
Javascript实现网络监测的方法
Jul 31 Javascript
Bootstrap3 模态框使用实例
Feb 22 Javascript
详解node child_process模块学习笔记
Jan 24 Javascript
vue2.0+vue-dplayer实现hls播放的示例
Mar 02 Javascript
QQ跳转支付宝并自动领红包脚本(最新)
Jun 22 Javascript
微信小程序实现的日期午别医生排班表功能示例
Jan 09 Javascript
node.js使用fs读取文件出错的解决方案
Oct 23 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/11/14 PHP
php Static关键字实用方法
2010/06/04 PHP
PHP数组对比函数,存在交集则返回真,否则返回假
2011/02/03 PHP
js 获取浏览器高度和宽度值(多浏览器)
2009/09/02 Javascript
讨论javascript(一)工厂方式 js面象对象的定义方法
2009/12/15 Javascript
jquery获得页面元素的坐标值实现思路及代码
2013/04/15 Javascript
javascript使用smipleChart实现简单图表
2015/01/02 Javascript
JS绘制生成花瓣效果的方法
2015/08/05 Javascript
Bootstrap多级导航栏(级联导航)的实现代码
2016/03/08 Javascript
jquery实现网站列表切换效果的2种方法
2016/08/12 Javascript
JS控制HTML元素的显示和隐藏的两种方法
2016/09/27 Javascript
JavaScript 判断一个对象{}是否为空对象的简单方法
2016/10/09 Javascript
页面间固定参数,通过cookie传值的实现方法
2017/05/31 Javascript
Js利用Canvas实现图片压缩功能
2017/09/13 Javascript
基于 flexible 的 Vue 组件:Toast -- 显示框效果
2017/12/26 Javascript
微信小程序模版渲染详解
2018/01/26 Javascript
webpack下实现动态引入文件方法
2018/02/22 Javascript
vue下拉列表功能实例代码
2018/04/08 Javascript
vue实现键盘输入支付密码功能
2018/08/18 Javascript
nodejs一个简单的文件服务器的创建方法
2019/09/13 NodeJs
Vue Elenent实现表格相同数据列合并
2020/11/30 Vue.js
Python二叉树的定义及常用遍历算法分析
2017/11/24 Python
Python实现数据结构线性链表(单链表)算法示例
2019/05/04 Python
tensorflow如何继续训练之前保存的模型实例
2020/01/21 Python
美国创意之家:BulbHead
2017/07/12 全球购物
墨西哥皇宫度假村预订:Palace Resorts
2018/06/16 全球购物
Subside Sports德国:足球球衣和球迷商品
2019/06/08 全球购物
Araks官网:纽约内衣品牌
2020/10/15 全球购物
协商一致解除劳动合同协议书
2014/09/14 职场文书
2014年财政局工作总结
2014/12/09 职场文书
物流业务员岗位职责
2015/04/03 职场文书
小学教师师德师风承诺书
2015/04/28 职场文书
学雷锋广播稿大全
2015/08/19 职场文书
你离财务总监还有多远?速览CFO的岗位职责
2019/11/18 职场文书
Python3中最常用的5种线程锁实例总结
2021/07/07 Python
关于@OnetoMany关系映射的排序问题,使用注解@OrderBy
2021/12/06 Java/Android