ES6学习之变量的两种命名方法示例


Posted in Javascript onJuly 18, 2017

前言

众所周知es6是ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在2015年6月正式发布了。它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。

它完善了ES5的命名规范,它又重新发布了两个新的命名变量的方式:let和const,但是let声明的变量只在它所在的代码块有效。

本文将给大家介绍关于ES6变量命名的两种方法,下面话不多说,来一起看看详细的介绍:

let a = 10;
 var b = 1;
}

a // ReferenceError: a is not defined.
b // 1

1、for循环的计数器,就很适合let,比如我之前遇到一个问题,就是一个ul中有很多li,要想点击每个li时都获取到哪个li的下标

for (let i = 0,len=obj.length; i < len; i++) {
      obj[i].addEventListener("click",function (){
       console.log(i)
      },false);
     }

var 在for循环中循环一个对象后得到最后那个对象的长度,而let很好的解决了那个问题,并且访问每个li的索引。

2、不存在变量提升

var命令会发生”变量提升“现象,即变量可以在声明之前使用,值为undefined。这种现象多多少少是有些奇怪的,按照一般的逻辑,变量应该在声明语句之后才可以使用。

为了纠正这种现象,let命令改变了语法行为,它所声明的变量一定要在声明后使用,否则报错。

// var 的情况
console.log(foo); // 输出undefined
var foo = 2;

// let 的情况
console.log(bar); // 报错ReferenceError
let bar = 2;

const声明一个只读的常量。一旦声明,常量的值就不能改变。

const PI = 3.1415;
PI // 3.1415

PI = 3;
// TypeError: Assignment to constant variable.

const声明的变量不得改变值,这意味着,const一旦声明变量,就必须立即初始化,不能留到以后赋值。

对于const来说,只声明不赋值,就会报错。

const的作用域与let命令相同:只在声明所在的块级作用域内有效。

总结

以上就是这篇文章的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
22点关于jquery性能优化的建议
May 28 Javascript
浅谈javascript 归并方法
Jan 21 Javascript
用JavaScript判断CSS浏览器类型前缀的两种方法
Oct 08 Javascript
微信开发 消息推送实现代码
Oct 21 Javascript
jQuery Ajax前后端使用JSON进行交互示例
Mar 17 Javascript
详解vue模拟加载更多功能(数据追加)
Jun 23 Javascript
Angularjs中数据绑定的实例详解
Aug 25 Javascript
基于jquery实现五星好评
Nov 18 jQuery
详解webpack运行Babel教程
Jun 13 Javascript
vue.js响应式原理解析与实现
Jun 22 Javascript
vue实现form表单与table表格的数据关联功能示例
Jan 29 Javascript
vue setInterval 定时器失效的解决方式
Jul 30 Javascript
vue实现表格增删改查效果的实例代码
Jul 18 #Javascript
js canvas实现适用于移动端的百分比仪表盘dashboard
Jul 18 #Javascript
vue深入解析之render function code详解
Jul 18 #Javascript
jquery插件canvaspercent.js实现百分比圆饼效果
Jul 18 #jQuery
浅谈JS封闭函数、闭包、内置对象
Jul 18 #Javascript
iscroll实现下拉刷新功能
Jul 18 #Javascript
vue.js实现单选框、复选框和下拉框示例
Jul 18 #Javascript
You might like
PHP遍历某个目录下的所有文件和子文件夹的实现代码
2013/06/28 PHP
PHP数组相关函数汇总
2015/03/24 PHP
php自动加载方式集合
2016/04/04 PHP
解决PHP上传非标准格式的图片pjpeg失败的方法
2017/03/12 PHP
php简单计算权重的方法示例【适合抽奖类应用】
2019/06/10 PHP
提高 DHTML 页面性能
2006/12/25 Javascript
设置下载不需要倒计时cookie(倒计时代码)
2008/11/19 Javascript
checkbox使用示例
2013/08/23 Javascript
代码获取历史上的今天发生的事
2014/04/11 Javascript
kindeditor修复会替换script内容的问题
2015/04/03 Javascript
深入浅出分析javaScript中this用法
2015/05/09 Javascript
Javascript递归打印Document层次关系实例分析
2015/05/15 Javascript
javascript实现设置、获取和删除Cookie的方法
2015/06/01 Javascript
函数window.open实现关闭所有的子窗口
2015/08/03 Javascript
angular2使用简单介绍
2016/03/01 Javascript
Vue数据驱动模拟实现4
2017/01/12 Javascript
Angularjs中使用指令绑定点击事件的方法
2017/03/30 Javascript
Bootstrap里的文件分别代表什么意思及其引用方法
2017/05/01 Javascript
webpack3之loader全解析
2017/10/26 Javascript
vue-cli实现多页面多路由的示例代码
2018/01/30 Javascript
vue实现户籍管理系统
2020/05/29 Javascript
微信小程序反编译的实现
2020/12/10 Javascript
[01:20]辉夜杯背景故事宣传片《辉夜传说》
2015/12/25 DOTA
[06:15]2016国际邀请赛中国区预选赛单车采访:我顶WINGS
2016/06/27 DOTA
python操作sqlite的CRUD实例分析
2015/05/08 Python
基于python 字符编码的理解
2017/09/02 Python
pandas 两列时间相减换算为秒的方法
2018/04/20 Python
python 读取DICOM头文件的实例
2018/05/07 Python
Python这样操作能存储100多万行的xlsx文件
2019/04/16 Python
毕业生造价工程师求职信
2013/10/17 职场文书
省级四好少年事迹材料
2014/01/25 职场文书
文明单位汇报材料
2014/12/24 职场文书
淮海战役观后感
2015/06/11 职场文书
医院消毒隔离制度
2015/08/05 职场文书
2016教师节问候语
2015/11/10 职场文书
MySql 8.0及对应驱动包匹配的注意点说明
2021/06/23 MySQL