var 和 const 和 let 的区别

var
var是ES5中的属性,可重复定义,ES5中是不存在块级作用域的。

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

function getdate() {
    
    
var date= new Date()
return date
}
getdate();
console.log(date) //Reference Error date //在外面方法中访问不到

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

let 和 const

在ES6中新增了let和const两个变量声名的属性,不可重复定义,可以实现块级作用域。

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

const person = {
    
    
name:"xiaowang"
}
 
person.name="laowang" //依旧可以修改
 
person = {
    
    } //×,不能被重新赋值

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

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

大部分情况下使用const,在类似for循环需要改变时使用let,const用来声名常量,其他情况下一律使用let

猜你喜欢

转载自blog.csdn.net/qq_37148353/article/details/118602176
今日推荐