美文网首页ES6 新特性
ES6 var 、let 和 const 区别

ES6 var 、let 和 const 区别

作者: 生命里那束光 | 来源:发表于2022-04-30 08:07 被阅读0次

1. var

* var 定义的变量可以修改,如果不初始化会输出undefined,不会报错;

* 在相同作用域里,可以重复声明同一个变量;

* 会声明提升;( if 内的 {} 不是作用域)

2. let

* let是块级作用域,函数内部使用let 定义后,对函数外部无影响;

* 在相同作用域里,不可以重复声明同一个变量;

* 声明的变量不会存在变量提升;( if 内的 {} 是作用域 )

* “暂时性死区”,在代码块内,使用let命令声明变量(或者const声明常量)之前,该变量(常量)都是不可用的。

底层原理:

1.在底层自动被翻译为匿名函数自调;

2.变量自动改名,比如 let t = XX => var _t = XX

3.const

* const 定义的变量不可修改,而且必须初始化,不能用null 占位;

* 在相同作用域里,不可以重复声明同一个变量;

* 声明的变量不会存在变量提升;

* 声明的是复杂类型数据,可以修改属性;

面试题:

for (var i = 0; i < 5; i++) {

    setTimeout(function() {

        console.log(i);

    }, 1000);

}

//这个例子执行完输出什么结果?

//答案是 5,5,5,5,5

//如果想要输出0,1,2,3,4改怎么实现?

//其中一种方案就是把var换成let就可以了。let的块级作用域在这里就体现出来了。

for (let i = 0; i < 5; i++) {

    setTimeout(function() {

        console.log(i);

    }, 1000);

}

相关文章

  • 总结一下前端常见javascript基础面试题:

    1.var ,let 和const的区别: let和const是es6新增的语法, let和var都可以定义变量,...

  • (JS)

    ES6 let、const和var的区别 let和const声明变量不存在变量提升 let和const不能重复声明...

  • javascript碎片知识000

    const let var 3者的区别。 const 和 let 为es6新增的定义变量的关键字。 var存在...

  • es6总结一

    es6基础 let和const命令 let和const用于声明变量let跟var的区别 1、let定义过的变量不能...

  • js常见知识点--第二篇

    一、var 、let 、const的区别 var是ES5提出的,let和const是ES6提出的。var不存在块级...

  • react 入门基础(一)之ES6

    ####ES6 let const var 三者的区别 ### 1. let const 不能重复声明变...

  • es6

    1、let 和const(定义变量) (1)var 、let 、const的区别 a、作用域区别var 变量声明会...

  • let 和 const

    let 和const是es6新增的命令,用于声明变量 var和let/const的区别1.块级作用域2.不存在变量...

  • ES6 学习笔记

    ES6 var let const 的使用 var let const 声明变量 全局作用域 和 块级作用域的区...

  • ES6 let和const认识

    本文章总结自阮一峰老师ES6入门 let、const和var的使用和区别举个例子 var a = []; fo...

网友评论

    本文标题:ES6 var 、let 和 const 区别

    本文链接:https://www.haomeiwen.com/subject/choeyrtx.html