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 相关文章推荐
双击滚屏-常用推荐
Nov 29 Javascript
通过百度地图获取公交线路的站点坐标的js代码
May 11 Javascript
javascript的alert box在java中如何显示多行
May 18 Javascript
JS实现文字链接感应鼠标淡入淡出改变颜色的方法
Feb 26 Javascript
JQuery+CSS实现图片上放置按钮的方法
May 29 Javascript
轻松学习jQuery插件EasyUI EasyUI创建树形菜单
Nov 30 Javascript
JavaScript面试题(指针、帽子和女朋友)
Nov 23 Javascript
Vue 组件(component)教程之实现精美的日历方法示例
Jan 08 Javascript
webpack file-loader和url-loader的区别
Jan 15 Javascript
使用ESLint禁止项目导入特定模块的方法步骤
Mar 04 Javascript
jquery使用echarts实现有向图可视化功能示例
Nov 25 jQuery
JavaScript实现简单验证码
Aug 24 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中使用Sockets 从Usenet中获取文件
2008/01/10 PHP
php.ini中的php-5.2.0配置指令详解
2008/03/27 PHP
利用PHP生成静态HTML文档的原理
2012/10/29 PHP
PHP获取文本框、密码域、按钮的值实例代码
2017/04/19 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式一图文详解
2019/04/09 PHP
php的单例模式及应用场景详解
2021/02/27 PHP
使用基于jquery的gamequery插件做JS乒乓球游戏
2011/07/31 Javascript
JavaScript中的onerror事件概述及使用
2013/04/01 Javascript
javascript 得到文件后缀名的思路及实现
2020/05/09 Javascript
动态加载script文件的两种方法
2013/08/15 Javascript
Jquery 模拟用户点击超链接或者按钮的方法
2013/10/25 Javascript
node.js中的fs.stat方法使用说明
2014/12/16 Javascript
JavaScript生成随机数的4种自定义函数分享
2015/02/28 Javascript
bootstrap布局中input输入框右侧图标点击功能
2016/05/16 Javascript
jQuery progressbar通过Ajax请求实现后台进度实时功能
2016/10/11 Javascript
Node.js中如何合并两个复杂对象详解
2016/12/31 Javascript
浅谈javascript中的 “ &amp;&amp; ” 和 “ || ”
2017/02/02 Javascript
vue项目中vue-i18n和element-ui国际化开发实现过程
2018/04/25 Javascript
vue.js使用v-model指令实现的数据双向绑定功能示例
2018/05/22 Javascript
TypeScript中使用getElementXXX()的示例代码
2019/09/12 Javascript
JavaScript ECMA-262-3 深入解析(一):执行上下文实例分析
2020/04/25 Javascript
解决vue 退出动画无效的问题
2020/08/09 Javascript
[39:32]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS DT 第二场
2014/05/23 DOTA
[47:35]VP vs Pain 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/20 DOTA
Python记录详细调用堆栈日志的方法
2015/05/05 Python
Python IDLE 错误:IDLE''s subprocess didn''t make connection 的解决方案
2017/02/13 Python
Python基于列表list实现的CRUD操作功能示例
2018/01/05 Python
python selenium实现发送带附件的邮件代码实例
2019/12/10 Python
Python3 操作 MySQL 插入一条数据并返回主键 id的实例
2020/03/02 Python
整理HTML5的一些新特性与Canvas的常用属性
2016/01/29 HTML / CSS
企业理念标语
2014/06/09 职场文书
英语课前三分钟演讲稿(6篇)
2014/09/13 职场文书
销售开票员岗位职责
2015/04/15 职场文书
2015年人事科工作总结
2015/04/28 职场文书
2019秋季运动会口号
2019/06/25 职场文书
室外天线与收音机天线杆接合方法
2022/04/05 无线电