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 相关文章推荐
CSDN轮换广告图片轮换效果
Mar 27 Javascript
js拖拽一些常见的思路方法整理
Mar 19 Javascript
浅谈JavaScript中的String对象常用方法
Feb 25 Javascript
JavaScript转换与解析JSON方法实例详解
Nov 24 Javascript
深入浅析knockout源码分析之订阅
Jul 12 Javascript
关于JS中的方法是否加括号的问题
Jul 27 Javascript
JS获取鼠标相对位置的方法
Sep 20 Javascript
js 原型对象和原型链理解
Feb 09 Javascript
详解vue.js的devtools安装
May 26 Javascript
Bootstrap table使用方法记录
Aug 23 Javascript
微信小程序实现即时通信聊天功能的实例代码
Aug 17 Javascript
解决vue刷新页面以后丢失store的数据问题
Aug 11 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 学习路线与时间表
2010/02/21 PHP
php 函数使用方法与函数定义方法
2010/05/09 PHP
PHP多线程抓取网页实现代码
2010/07/22 PHP
PHP无刷新上传文件实现代码
2011/09/19 PHP
php实现的SESSION类
2014/12/02 PHP
PHP函数import_request_variables()用法分析
2016/04/02 PHP
yii2利用自带UploadedFile实现上传图片的示例
2017/02/16 PHP
Extjs中通过Tree加载右侧TabPanel具体实现
2013/05/05 Javascript
angularJS 中input示例分享
2015/02/09 Javascript
Javascript控制div属性动态变化实例分析
2015/10/08 Javascript
Bootstrap树形控件使用方法详解
2016/01/27 Javascript
Angular 路由route实例代码
2016/07/12 Javascript
Vue.js弹出模态框组件开发的示例代码
2017/07/26 Javascript
redux-saga 初识和使用
2018/03/10 Javascript
Angular5中调用第三方库及jQuery的添加的方法
2018/06/07 jQuery
详解@angular/cli 改变默认启动端口两种方式
2018/11/29 Javascript
在Vue项目中,防止页面被缩放和放大示例
2019/10/28 Javascript
node.js中Buffer缓冲器的原理与使用方法分析
2019/11/23 Javascript
基于JS实现table导出Excel并保留样式
2020/05/19 Javascript
python不带重复的全排列代码
2013/08/13 Python
django 自定义用户user模型的三种方法
2014/11/18 Python
python实现通过pil模块对图片格式进行转换的方法
2015/03/24 Python
python使用mailbox打印电子邮件的方法
2015/04/30 Python
python图书管理系统
2020/04/05 Python
python学生管理系统代码实现
2020/04/05 Python
利用python将pdf输出为txt的实例讲解
2018/04/23 Python
在python中按照特定顺序访问字典的方法详解
2018/12/14 Python
Python地图绘制实操详解
2019/03/04 Python
Python3.5 Pandas模块之DataFrame用法实例分析
2019/04/23 Python
如何在VSCode下使用Jupyter的教程详解
2020/07/13 Python
大学生个人求职口试自我评价
2014/02/16 职场文书
小学节能减排倡议书
2014/05/15 职场文书
转让协议书范本
2014/09/13 职场文书
2015年财务部年度工作总结
2015/05/19 职场文书
MongoDB使用profile分析慢查询的步骤
2021/04/30 MongoDB
nginx七层负载均衡配置详解
2022/07/15 Servers