文档章节

ES6学习记录-let和var的区别

王潭不是王雨潭
 王潭不是王雨潭
发布于 2017/04/28 19:19
字数 260
阅读 14
收藏 0

1、let声明的变量只在所处的代码块内有效

{
    let a = 10;
    var b = 1;
}
console.log(a);//会报错:a is not defined
console.log(b);//输出1

2、let不存在变量提升,就是说let声明的变量必须先声明再使用

console.log(a);//会报错:a is not defined,因为没有变量提升
console.log(b);//undefined,因为有变量提升,b已存在但未赋值

let a = 10;
let b = 1;

3、let存在暂时性死区(temporal dead zone,TDZ)

如果区块中存在let或者const命令,区块对该命令声明的变量形成封闭作用域。也就是说在let、const命令生命之前,变量都是不可用的。

var temp = 123;
if(true){
    console.log(temp);//输出123
    var temp = 2;
}
if(true){
    console.log(temp); //报错:temp is not defined,存在暂时性死区
    let temp = 2;
}

4、let声明的变量不能重复声明

var a = 123;
var a = 12; //不报错

var b = 123;
let b = 12;//报错

let c = 123;
var c = 12;//报错

let d = 123;
let d = 12;//报错

© 著作权归作者所有

共有 人打赏支持
上一篇: js实现懒加载
下一篇: leetCode Rotate Image
王潭不是王雨潭
粉丝 7
博文 19
码字总数 19745
作品 0
杭州
私信 提问
var、 let 和const区别

最近在学习尤达上面的一些Es6语法,记录一下。 在 JavaScript 中声明变量的唯一方式是使用关键字 var。 本质上var在使用过程中有时候会带来一些问题,在执行任何 JavaScript 代码之前,所有变...

随心摆文
08/22
0
0
前端学习笔记!

作为一个前端新人,看了很多关于前端的博客,觉得有必要去记录点知识点和自己的总结,所以在工作之余写了这篇文章,该博客有引用到其他文章的内容,纯属学习,在此膜拜一下各位前端大大。 一...

黑人tao
2017/02/20
0
0
【探秘ES6】系列专栏(十二):let和const

ES6作为新一代JavaScript标准,已正式与广大前端开发者见面。为了让大家对ES6的诸多新特性有更深入的了解,Mozilla Web开发者博客推出了《ES6 In Depth》系列文章。CSDN已获授权,将持续对该...

一配
2015/11/17
0
0
ECMAScript 6 let 命令介绍

一、使用 let 命令来声明变量的总结 ES6新增了let命令 ,它是一个块级域的局部变量,并且可以给它一个初始化值。let允许把变量的作用域限制在块级域中。与 var 不同处是:var申明变量要么是全...

AAASSSSddd
2016/11/30
16
0
前端问题总汇

1、vue1.0到vue2.0的变化?组件之间如何通信? 2、webpack主要做了什么?怎么打包的? 3、模块化是做什么的?模块化解决了什么问题?模块化有什么优点呢? AMD、CMD、commonJS这些要了解,再...

xuhaoxin123
2017/11/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

RabbitMQ+PHP 教程三(Publish/Subscribe)用yii2测试通过

介绍 在前面的教程中,我们创建了一个工作队列。工作队列背后的假设是每个任务都交付给一个工作人员处理。在这一部分中,我们将做一些完全不同的事情——我们将向多个消费者发送消息。此模式...

hansonwong
24分钟前
2
0
关于JAVA你必须知道的那些事(四):单例模式和多态

好吧,今天一定要把面向对象的最后一个特性:多态,给说完。不过我们先来聊一聊设计模式,因为它很重要。 设计模式 官方的解释是,设计模式是:一套被反复使用,多数人知晓的,经过分类编目,...

拾光TM
24分钟前
1
0
ES6 系列之 Babel 是如何编译 Class 的(下)

摘要: ## 前言 在上一篇 [《 ES6 系列 Babel 是如何编译 Class 的(上)》](https://github.com/mqyqingfeng/Blog/issues/105),我们知道了 Babel 是如何编译 Class 的,这篇我们学习 Babel ...

阿里云官方博客
25分钟前
1
0
附实例!实现iframe父窗体与子窗体的通信

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由前端林子发表于云+社区专栏 本文主要会介绍如何基于MessengerJS,实现iframe父窗体与子窗体间的通信,传递数据信息。同时本...

腾讯云加社区
31分钟前
1
0
JSP页面传List集合到Action中

1:JSP页面(前端用的是H-UI框架) <div class="codeView docs-example"> <table class="table table-border table-bordered table-striped"> <thead> ......

uug
34分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部