美文网首页
Javascript ES6中的let const和var的区别

Javascript ES6中的let const和var的区别

作者: 学不动了Zzz | 来源:发表于2019-05-07 20:23 被阅读0次

var

直接定义到window上

var a = 1
window.a // 1

声明提升(预编译)

console.log(a) // undefined
var a = 1

let

声明不提升

console.log(a) // 报错 Uncaught ReferenceError: a is not defined
let a = 1

暂时性死区:如果某个代码块中有let指令,外部有名称相同的变量,两者互不影响

var a = 1
if (true) {
  var a = 2
  console.log(a) // 2
}
console.log(a) // 2
if (true) {
  let a = 3
  console.log(a) // 3
}
console.log(a) // 2

同一代码块中不可重复声明

let a = 1
let a = 2 // Identifier 'a' has already been declared

const

声明不提升,暂时性死区,同一代码块中不可重复声明(同let)
const声明一个只读的常量,声明的时候必须初始化赋值,一旦声明,常量的值就不能改变

const a = 1
a = 2 // Assignment to constant variable

const其实保证的不是变量不可改变,而是变量指向的内存地址所保存的数据不可改变
基本数据类型: 值就保存在变量指向的内存地址,等同于常量。不能改变值。
复杂数据类型: 该类型变量名不指向数据,而是指向数据所在的地址,const只保证变量名指向的地址不变,并不保证改地址的数据不变,因此可以对该地址的属性值进行修改,但是不能改变地址指向。

const a = {x: 1}
a.x = 2
console.log(a) // {x: 2}
a = {x: 3} // Assignment to constant variable

相关文章

  • 总结一下前端常见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存在...

  • JS中var、let、const区别

    在javascript中有三种声明变量的方式:var let const。let var const的区别?var...

  • js中const,var,let区别

    在javascript中有三种声明变量的方式:var let const。let var const的区别?var...

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

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

  • es6总结一

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

  • react 入门基础(一)之ES6

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

  • var、let、const

    JavaScript中的变量声明目前有三种:var、let、const。let和const是JavaScript里...

  • 2019-03-03

    es6 第二章 let和const命令 let 基本用法 let和var的区别let:只在定义的代码块中起作用va...

网友评论

      本文标题:Javascript ES6中的let const和var的区别

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