声明风格及最佳实现
ECMA6新增加了const和let,两个新关键字的出现,新的有助于提升代码质量的最佳实现也逐渐显现。不使用var,const优先,let次之。
var声明
var声明作用域:函数的局部变量
var声明提升
function foo(){
console.log(age);
age = 26;
}
=>
function foo(){
`age = 26;`
console.log(age);
}
let声明_推荐在声明循环中使用
let声明作用域:块作用域1、暂时性死区
let声明的对象不会像var声明的变量在作用域中被提升。
2、全局声明
let在全局作用域中生命的变量不会成为window对象的属性
3、条件声明
由于let声明的作用域为块作用域,所以不能通过条件来声明let的变量,或者try、catch、typeof等关键词
try{
console.log(age); //如果age没有被声明过,则会报错
}
catch(error){
let age;
}
//age 被限制在catch{}块的作用域内
//因此这个赋值是全局赋值
age = 26;
const声明_声明对象
const声明的变量不允许被修改,并且声明的作用域也是块,但是如果const变量引用的是一个对象,那么修改这个对象内部的属性并不违反const的限制。文章内容参考:JavaScript高级程序设计(第四版)标题、背景来自:juejin.cn/post/684490…