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 异常处理 详解
Feb 06 Javascript
简介JavaScript中fixed()方法的使用
Jun 08 Javascript
浏览器中url存储的JavaScript实现
Jul 07 Javascript
实例详解jQuery结合GridView控件的使用方法
Jan 04 Javascript
动态统计当前输入内容的字节、字符数的实例详解
Oct 27 Javascript
javascript+jQuery实现360开机时间显示效果
Nov 03 jQuery
JavaScript canvas实现围绕旋转动画
Nov 18 Javascript
对vue下点击事件传参和不传参的区别详解
Sep 15 Javascript
vue单页缓存方案分析及实现
Sep 25 Javascript
浅谈vuex为什么不建议在action中修改state
Feb 02 Javascript
vue实现导航菜单和编辑文本的示例代码
Jul 04 Javascript
Vant picker 多级联动操作
Nov 02 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调用三种数据库的方法(1)
2006/10/09 PHP
什么情况下可以不写PHP的闭合标签“?&gt;”
2014/08/28 PHP
PHP 反射(Reflection)使用实例
2015/05/12 PHP
twig里使用js变量的方法
2016/02/05 PHP
PHP单例模式简单用法示例
2017/06/23 PHP
jquery div 居中技巧应用介绍
2012/11/24 Javascript
node.js中的fs.chownSync方法使用说明
2014/12/16 Javascript
js函数与php函数的区别实例浅析
2015/01/12 Javascript
windows下安装nodejs及框架express
2015/08/07 NodeJs
vue组件间通信解析
2017/03/01 Javascript
JS+CSS实现下拉刷新/上拉加载插件
2017/03/31 Javascript
Vue入门学习笔记【基本概念、对象、过滤器、指令等】
2019/04/13 Javascript
IE浏览器下JS脚本提交表单后,不能自动提示问题解决方法
2019/06/04 Javascript
前端Vue项目详解--初始化及导航栏
2019/06/24 Javascript
简单了解JavaScript弹窗实现代码
2020/05/07 Javascript
vue 清空input标签 中file的值操作
2020/07/21 Javascript
python基础教程之元组操作使用详解
2014/03/25 Python
Python标准库内置函数complex介绍
2014/11/25 Python
Python元组常见操作示例
2019/02/19 Python
浅谈PySpark SQL 相关知识介绍
2019/06/14 Python
Django模板导入母版继承和自定义返回Html片段过程解析
2019/09/18 Python
python装饰器代替set get方法实例
2019/12/19 Python
python GUI库图形界面开发之PyQt5滑块条控件QSlider详细使用方法与实例
2020/02/28 Python
Python中过滤字符串列表的方法
2020/12/22 Python
python 获取域名到期时间的方法步骤
2021/02/10 Python
css3设置box-pack和box-align让div里面的元素垂直居中
2014/09/01 HTML / CSS
html5 Canvas实现图片旋转的示例
2018/01/15 HTML / CSS
安全教育感言
2014/03/04 职场文书
电脑售后服务承诺书
2014/03/27 职场文书
交通事故赔偿协议书
2014/04/15 职场文书
开票员岗位职责
2015/02/12 职场文书
酒店仓管员岗位职责
2015/04/01 职场文书
党章党规党纪学习心得体会
2016/01/14 职场文书
MySQL sql_mode修改不生效的原因及解决
2021/05/07 MySQL
PHP设计模式(观察者模式)
2021/07/07 PHP
一起来看看Vue的核心原理剖析
2022/03/24 Vue.js