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 相关文章推荐
javascript 写类方式之七
Jul 05 Javascript
js cookies实现简单统计访问次数
Nov 24 Javascript
javascript中interval与setTimeOut的区别示例介绍
Mar 14 Javascript
分享一个自己动手写的jQuery分页插件
Aug 28 Javascript
jQuery循环动画与获取组件尺寸的方法
Feb 02 Javascript
jquery 插件实现多行文本框[textarea]自动高度
Mar 04 Javascript
Jquery网页内滑动缓冲导航的实现代码
Apr 05 Javascript
Angular.js中控制器之间的传值详解
Apr 24 Javascript
解决vue attr取不到属性值的问题
Sep 18 Javascript
vue.js的双向数据绑定Object.defineProperty方法的神奇之处
Jan 18 Javascript
详解js中let与var声明变量的区别
Apr 05 Javascript
如何利用React实现图片识别App
Feb 18 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中文乱码
2009/11/26 PHP
PHPCMS的使用小结
2010/09/20 PHP
php数字运算验证码的实现代码
2015/07/30 PHP
PHP实现网页内容html标签补全和过滤的方法小结【2种方法】
2017/04/27 PHP
PHP检测一个数组有没有定义的方法步骤
2019/07/20 PHP
php连接sftp的作用以及实例代码
2019/09/23 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
2020/02/27 PHP
理解Javascript_05_原型继承原理
2010/10/13 Javascript
如何动态的导入js文件具体该怎么实现
2014/01/14 Javascript
用Vue.js实现监听属性的变化
2016/11/17 Javascript
nodejs body-parser 解析post数据实例
2017/07/26 NodeJs
Vue.js框架路由使用方法实例详解
2017/08/25 Javascript
详解从新建vue项目到引入组件Element的方法
2017/08/29 Javascript
ReactNative 之FlatList使用及踩坑封装总结
2017/11/29 Javascript
Hexo已经看腻了,来手把手教你使用VuePress搭建个人博客
2018/04/26 Javascript
apicloud拉起小程序并传递参数的方法示例
2018/11/21 Javascript
js实现多个倒计时并行 js拼团倒计时
2019/02/25 Javascript
vue-以文件流-blob-的形式-下载-导出文件操作
2020/08/07 Javascript
[48:27]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
python Selenium爬取内容并存储至MySQL数据库的实现代码
2017/03/16 Python
python决策树之CART分类回归树详解
2017/12/20 Python
对python字典元素的添加与修改方法详解
2018/07/06 Python
python适合人工智能的理由和优势
2019/06/28 Python
用python写一个定时提醒程序的实现代码
2019/07/22 Python
PyQt 图解Qt Designer工具的使用方法
2019/08/06 Python
python web框架Flask实现图形验证码及验证码的动态刷新实例
2019/10/14 Python
python定间隔取点(np.linspace)的实现
2019/11/27 Python
python 实现从高分辨图像上抠取图像块
2020/01/02 Python
如何解决python多种版本冲突问题
2020/10/13 Python
css3实现顶部社会化分享按钮示例
2014/05/06 HTML / CSS
css3实现元素环绕中心点布局的方法示例
2019/01/15 HTML / CSS
小学教师师德承诺书
2014/05/23 职场文书
爱护公共设施的标语
2014/06/24 职场文书
2015年部门工作总结范文
2015/03/31 职场文书
「月刊Comic Alive」2022年5月号封面公开
2022/03/21 日漫
Java使用HttpClient实现文件下载
2022/08/14 Java/Android