关闭

ES6中let变量的特点,使用let声明总汇

时间: 2017-12-28阅读: 3360标签: ES6

ES6中let变量的特点

1.在ES6之前是没有块级作用域的,let声明变量存在块级作用域,只在它所在的代码块有效
2.let不能先使用再声明
3.暂时性死区,在代码块内使用let命令声明变量之前,该变量都是不可用的
4.不允许重复声明,在相同作用域内,重复声明同一个变量。


1、存在块级作用域  

在不使用let要实现块级作用域,通常借助立即执行匿名函数来实现 :

(function(){
  var a= 1;
}());
console.log(a); //出错,not defined

如果使用Let,在{}就可以生效:

{
  let a = 1;
}
console.log(a); //出错 not defined


2、let不能先使用再声明

console.log(a); //出错,Uncaught ReferenceError: a is not defined
console.log(b);//undefined
let a = 1;
var b=1;

在这个语句块中,在变量声明之前引用这个变量会导致一个 ReferenceError的结果。所以let不能先使用在声明


3、暂时性死区 

在块级作用域内,若存在用let命令声明的变量,则所在区块对该变量形成封闭作用域,也就是该变量无视外部的同名变量。而又因为不存在变量提升,所以在该区块中,不能在声明前使用该变量。

var a  = 1;
if(true){
  a = 2; //出错 not defined
  let a; 
}

对比var

var a = 1;
if(true){
  a = 2; //var允许重复声明,而且变量提升,故a=2正常赋值
var a;
}


 4.不允许重复调用

相同作用域内重复声明同一个变量,也包括不能和var,const变量名重复

let a = 1;
let a = 1; //出错 let不可重复声明

var b = 1;
let b = 1; //出错 let不可重复声明

const c = 1;
let c = 1; //出错 let不可重复声明


 

站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

2.广告联盟: 整理了目前主流的广告联盟平台,如果你有流量,可以作为参考选择适合你的平台点击进入

链接: http://www.fly63.com/article/detial/288

关闭

ES6新特性:JavaScript中Set和WeakSet类型的数据结构

ES6提供了新的数据结构Set,Set对象不是数组, 可以用来保存对象或者基本类型, 所有保存的值都是唯一的, chrome浏览器>38和FF>13,以及nodeJS,对Set支持良好, 以下的一些代码,都可以拷贝到控制台直接运行哦;

javascript es6是什么?

ES6就是ECMAScript6是新版本JavaScript语言的标准。已经在2015年6月正式发布了。Mozilla公司将在这个标准的基础上,推出JavaScript 2.0。ECMAScript6在保证向下兼容的前提下

jses6语法:class类 class继承 super关键字

Class可以通过extends关键字实现继承,这比ES5通过修改原型链实现继承,super关键字既可以当做函数使用,也可以当做对象使用,当做函数使用的时候,代表的是父类的构造函数

node可以用es6语法吗?

Node本身已经支持大部分ES6语法,但是import export,以及async await(Node 8 已经支持)等一些语法,我们还是无法使用。为了能使用这些新特性,我们就需要使用babel把ES6转成ES5语法。

ES6 Promise用法详解

Promise是一个构造函数,接受一个参数(Function),并且该参数接受两个参数resolve和reject(分别表示异步操作执行成功后的回调函数、执行失败后的回调函数)

es6数据变更同步到视图层

数据变更同步到视图层有一个很重要的东西就是Proxy,Proxy的作用就是可以隐藏真正的对象,而用户去修改它的代理对象.Proxy可以监听数据的变化,例如

在使用es6语法class的时候,babel到底做了什么?

自从有了webpack之后,我们这些jscoder似乎得到了前所未有的解放,箭头函数,对象解构,let,const关键字,以及class、extends等等,webpack会帮我们把这些es6代码转换成浏览器能够识别的es5代码,那么有多少人真正的看过,babel转换之后的代码呢?

es6 箭头函数的使用总结,带你深入理解js中的箭头函数

箭头函数是ES6中非常重要的性特性。它最显著的作用就是:更简短的函数,并且不绑定this,arguments等属性,它的this永远指向其上下文的 this。它最适合用于非方法函数,并且它们不能用作构造函数。

九个超级实用的 ES6 特性

展开操作符顾名思义,用于对象或数组之前的展开操作符(…),将一个结构展开为列表。剩余参数将剩余的参数收入数列。JavaScript 的特性是参数数目很灵活

ES6+js原生注意点

Symbol属性私有化,数据保护,let不支持变量声明预解析(先声明后使用),支持块作用域,const不支持变量声明预解析(先声明后使用),不允许重复声明(暂存死区),事件委托,解构赋值

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!