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 作用域使用说明
Aug 13 Javascript
jquery load()在firefox(火狐)下显示不正常的解决方法
Apr 05 Javascript
动态加载外部javascript文件的函数代码分享
Jul 28 Javascript
json的前台操作和后台操作实现代码
Jan 20 Javascript
Javascript实现DIV滚动自动滚动到底部的代码
Mar 01 Javascript
Knockout visible绑定使用方法
Nov 15 Javascript
javascript中Number对象的toString()方法分析
Dec 20 Javascript
jQuery中delegate()方法的用法详解
Oct 13 Javascript
canvas雪花效果核心代码分享
Feb 19 Javascript
简单实现js进度条加载效果
Mar 25 Javascript
详解webpack引用jquery(第三方模块)的三种办法
Aug 21 jQuery
node.js 基于 STMP 协议和 EWS 协议发送邮件
Feb 14 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
用ADODB来让PHP操作ACCESS数据库的方法
2006/12/31 PHP
php中的Base62类(适用于数值转字符串)
2013/08/12 PHP
php 购物车完整实现代码
2014/06/05 PHP
php写一个函数,实现扫描并打印出自定目录下(含子目录)所有jpg文件名
2017/05/26 PHP
Laravel中为什么不使用blpop取队列详析
2018/08/01 PHP
Laravel5.1 框架响应基本用法实例分析
2020/01/04 PHP
PHP数据源架构模式之表入口模式实例分析
2020/01/23 PHP
JS对HTML标签select的获取、添加、删除操作
2013/10/17 Javascript
jquery 扑捉回车键事件代码
2014/04/24 Javascript
js控制鼠标事件移动及移出效果显示
2014/10/19 Javascript
使用javascript提交form表单方法汇总
2015/06/25 Javascript
javascript实现确定和取消提示框效果
2015/07/10 Javascript
JavaScript实现将文本框的值插入指定位置的方法
2015/08/13 Javascript
JS实现兼容性较好的随屏滚动效果
2015/11/09 Javascript
jquery实现具有嵌套功能的选项卡
2016/02/12 Javascript
JS设置随机出现2个数字的实例代码
2017/07/19 Javascript
Node.js 使用流实现读写同步边读边写功能
2017/09/11 Javascript
three.js实现3D影院的原理的代码分析
2017/12/18 Javascript
JS逻辑运算符短路操作实例分析
2018/07/09 Javascript
使用layui的router来进行传参的实现方法
2019/09/06 Javascript
python http接口自动化脚本详解
2018/01/02 Python
Python实现PS滤镜特效Marble Filter玻璃条纹扭曲效果示例
2018/01/29 Python
对TensorFlow中的variables_to_restore函数详解
2018/07/30 Python
如何基于Python获取图片的物理尺寸
2019/11/25 Python
Python如何使用argparse模块处理命令行参数
2019/12/11 Python
python 微信好友特征数据分析及可视化
2020/01/07 Python
python Xpath语法的使用
2020/11/26 Python
美术毕业生求职信
2014/02/25 职场文书
党代会心得体会
2014/09/04 职场文书
工伤事故处理协议书怎么写
2014/10/15 职场文书
导游词之南京栖霞山
2019/10/18 职场文书
Nginx配置并兼容HTTP实现代码解析
2021/03/31 Servers
html5调用摄像头截图功能
2022/01/18 Javascript
python opencv将多个图放在一个窗口的实例详解
2022/02/28 Python
vue里使用create, mounted调用方法
2022/04/26 Vue.js
Mybatis 一级缓存和二级缓存原理区别
2022/09/23 Java/Android