11.16 基本完成个人任务管理系统项目后重新复习JavaScript高级程序设计——声明var与let变量关键字区别的笔记

发布时间 2023-11-16 20:50:17作者: katyjohn

我看的是js高级程序设计第四版,前两章快速了解了一下,第三章开始慢啃,虽然内容枯燥,很多东西自己也知道了,但还是有一些收获的。

比如,声明变量的三个关键词:var、let、const;var以前经常用但是会出问题,相比let没有那么严谨(var声明范围函数作用域,而let声明范围块级作用域)。

看个例子:

这是var关键字

if (true) { 
 var name = 'Matt'; 
 console.log(name); // Matt 
} 
console.log(name); // Matt 

这是let关键字

if(true){
    let name='Matt';
    console.log(name);//Matt
}
console.log(name);//name没有定义

相比之下,let更具有严谨性,不然写一个比较复杂的项目,自己不注意关键字的选取,导致细节上的错误,还不容易找到bug。

 另一个主要区别是:var在声明的变量在作用域中会提升,而let关键字则不会。

栗子:

// name 会被提升
console.log(name); // undefined 
var name = 'Matt'; 
// age 不会被提升
console.log(age); // ReferenceError:age 没有定义
let age = 26;