码迷,mamicode.com
首页 > 其他好文 > 详细

var、let和const的区别

时间:2019-01-04 00:27:23      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:ref   使用   ant   const   typeerror   不可变   err   reference   不可用   

 var

  • 首先var有变量提升
console.log(a); // undefined
var a = 1;
  •  function也存在提升现象
console.log(b); //function b(){}
function b(){};
var b;
  • 并且函数提升优先于变量提升

let

  •  let不存在变量提升
console.log(a) // Uncaught ReferenceError: a is not defined
let a;
在代码块内,使用let命令声明变量之前,该变量都是不可用的。这在语法上,称为“暂时性死区”(temporal dead zone,简称 TDZ)。由于存在TDZ现象,所以let不存在变量提升。
  • 块级作用域

const

  • 声明常量,不可再赋值
  • const保证的是变量指向的地址不可变,而不能保证地址指向的值不可变,如果是基本类型,地址指向的就是值,但是如果是引用类型就要注意了,引用类型的值时可变的
const a = 1;
a = 2;// Uncaught TypeError: Assignment to constant variable.
const obj = {age: 10}
obj.age = 20;
console.log(obj.age);// 20

var、let和const的区别

标签:ref   使用   ant   const   typeerror   不可变   err   reference   不可用   

原文地址:https://www.cnblogs.com/jhaosun/p/var.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!