文档章节

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
王潭不是王雨潭
粉丝 6
博文 19
码字总数 19745
作品 0
杭州
私信 提问
var、 let 和const区别

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

随心摆文
2018/08/22
0
0
ES6与CommonJS中的模块处理的区别

ES6和CommonJS都有自己的一套处理模块化代码的措施,即JS文件之间的相互引用。 为了方便两种方式的测试,使用nodejs的环境进行测试 CommonJS的模块处理 使用require来引入其他模块的代码,使...

peakedness丶
2018/12/15
0
0
前端学习笔记!

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

黑人tao
2017/02/20
0
0
ES6,记录的20多问题,你都会吗?

一、问:ES6是什么,为什么要学习它,不学习ES6会怎么样? 答: ES6是新一代的JS语言标准,对分JS语言核心内容做了升级优化,规范了JS使用标准,新增了JS原生方法,使得JS使用更加规范,更加优...

大灰狼的小绵羊哥哥
2018/12/26
0
0
WEB前端学习:ES6块级作用域的概念详解

Web前端开发工程师是一个很新的职业,是从事Web前端开发工作的工程师。主要进行网站开发,优化,完善的工作。网页制作是Web 1.0时代的产物,那时网站的主要内容都是静态的,用户使用网站的行...

web前端小辰
2018/06/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

深度学习为图片人物换装【python代码教程】

在观看本文之前,请答应我要善良。昨天预告了下,发现很多同学对这个模型都表示出兴趣,甚至有好多同学后台发来照片让我帮他们脱裤子。授人以鱼不如授人以渔,请这些同学好自为之~ 01效果演示...

阿里云官方博客
28分钟前
3
0
centos7安装RabbitMQ详细过程

由于RabbitMQ是基于Erlang语言开发,所以在安装RabbitMQ之前,需要先安装Erlang 1、环境: centos 7.1 内核版本3.10.0-229.el7.x86_64 Erlang 19.0.4版本 RabbitMQ 3.6.14版本 2、在线安装E...

秋至丶枫以落
59分钟前
1
0
6个使用KeePassX保护密码的技巧

虽然安全是个深奥的主题,但是你可以遵循几个简单的日常习惯来减小攻击面。本文将解释确保密码信息安全的重要性,并给出如何充分利用KeePassX的建议。 日益互联的数字世界使安全成为一个重要...

Linux就该这么学
今天
1
0
UnsatisfiedLinkError sawindbg.dll

方法:搜索sawindbg.dll,然后将文件报错的目录下

洛水
今天
5
0
说说不知道的Golang中参数传递

本文由云+社区发表 导言 几乎每一个C++开发人员,都被面试过有关于函数参数是值传递还是引用传递的问题,其实不止于C++,任何一个语言中,我们都需要关心函数在参数传递时的行为。在golang中...

腾讯云加社区
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部