var 和 const 和let的区别

ES5中是不存在块级作用域的。在ES6增加了const和let,可以实现块级作用

js中有两种作用域,全局作用域和方法作用域

function getdate() {
var date= new Date()
return date
}

getdate();

console.log(date) //Reference Error date在外面方法中访问不到

但是有个问题,只要在方法中定义的var,在该方法中都可以访问到。这就造成很多问题了。

于是在ES6中新增了let和const两个变量声名的关键字。

let和var的区别

一,

let声名的变量是块级作用域,即在整个大括号{}中是个可以访问到的。

在{}外访问let定义的变量便会报错,提示未定义

let和const

const和let的作用域一致都是块级作用域。不同的是const变量一旦被赋值,就不能再赋值了。但是变量的值依旧可以改变。

const person = {
name:"xiaowang"
}

person.name="laowang" //依旧可以修改

person = {} //×,不能被重新赋值

 

var,let,const 的使用

有了好用的const和let。var尽量不要用(大部分情况下使用const,在类似for循环需要改变时使用let)

const用来声名常量,其他情况下一律使用let

 

你可能感兴趣的:(前端)