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 相关文章推荐
JS网络游戏-(模拟城市webgame)提供的一些例子下载
Oct 14 Javascript
jQuery回车实现登录简单实现
Aug 20 Javascript
javascript里绝对用的上的字符分割函数总结
Jul 31 Javascript
用循环或if语句从json中取数据示例
Aug 18 Javascript
jquery实现类似淘宝星星评分功能有截图
Sep 15 Javascript
利用AJAX实现WordPress中的文章列表及评论的分页功能
May 17 Javascript
AngularJS中指令的四种基本形式实例分析
Nov 22 Javascript
js处理层级数据结构的方法小结
Jan 17 Javascript
详解在Vue中如何使用axios跨域访问数据
Jul 07 Javascript
vue内置指令详解
Apr 03 Javascript
layui数据表格 table.render 报错的解决方法
Sep 29 Javascript
详解vue中多个有顺序要求的异步操作处理
Oct 29 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 读取Postgresql中的数组
2013/04/14 PHP
php函数实现判断是否移动端访问
2015/03/03 PHP
php专用数组排序类ArraySortUtil用法实例
2015/04/03 PHP
Ucren Virtual Desktop V2.0
2006/11/07 Javascript
用jscript实现列出安装的软件列表
2007/06/18 Javascript
js cookies实现简单统计访问次数
2009/11/24 Javascript
js格式化货币数据实现代码
2013/09/04 Javascript
jquery中event对象属性与方法小结
2013/12/18 Javascript
js弹出确认是否删除对话框
2014/03/27 Javascript
javascript正则表达式参数/g与/i及/gi的使用指南
2014/08/27 Javascript
第一次动手实现bootstrap table分页效果
2016/09/22 Javascript
Bootstrap CSS组件之面包屑导航(breadcrumb)
2016/12/17 Javascript
深入理解Vue官方文档梳理之全局API
2017/11/22 Javascript
vue.js响应式原理解析与实现
2020/06/22 Javascript
layui对工具条进行选择性的显示方法
2019/09/19 Javascript
[01:38]DOTA2辉夜杯 欢乐的观众现场采访
2015/12/26 DOTA
12步教你理解Python装饰器
2016/02/25 Python
python之matplotlib学习绘制动态更新图实例代码
2018/01/23 Python
pycharm实现print输出保存到txt文件
2020/06/01 Python
Python 实现进度条的六种方式
2021/01/06 Python
Tory Burch德国官网:美国时尚生活品牌
2018/01/03 全球购物
美赞臣新加坡官方旗舰店:Enfagrow新加坡
2019/05/15 全球购物
数据库专业英语
2012/11/30 面试题
学生自我鉴定范文
2013/10/04 职场文书
说明书范文
2014/05/07 职场文书
教师群众路线心得体会
2014/11/04 职场文书
党风廉正建设责任书
2015/01/29 职场文书
成品仓管员岗位职责
2015/04/01 职场文书
2015年学校关工委工作总结
2015/04/03 职场文书
2015年人力资源工作总结
2015/04/08 职场文书
2015年高一班主任工作总结
2015/05/13 职场文书
SQL Server实现分页方法介绍
2022/03/16 SQL Server
vue项目proxyTable配置和部署服务器
2022/04/14 Vue.js
java高级用法JNA强大的Memory和Pointer
2022/04/19 Java/Android
Spring中的@Transactional的工作原理
2022/06/05 Java/Android
redis lua限流算法实现示例
2022/07/15 Redis