前面有章节已经学习过ES6的新特性:前端学习手册-ECMAScript 6 入门(十四)
后续将分类梳理JavaScript进阶的知识点,更加的详细。
整理的过程中,能够巩固知识点,汲取新知识,拓宽知识面,一起学习成长,一定会有所收获和突破。
一、var
1.存在变量提升,声明会被提升到作用域顶部,但赋值不会,为undefined
undefined 是 JavaScript 的一个原始数据类型,表示变量已声明但尚未赋值,或者表示某个值或属性不存在。
2.函数作用域,在函数内声明的变量可以在整个函数内访问,在函数外声明则成为全局变量。
3.允许在同一作用域内重复声明,值会被覆盖。
4.可以重新赋值
二、let
function getName1(){
console.log('声明前使用:',name1)
let name1='小南'
let name1='小南2号'
console.log('代码块内访问:',name1)
name1='码农生存指南'
console.log('修改后的名字:',name1)
}
getName1()
console.log('代码块外访问:',name1)
1.不存在变量提升,如果在声明前使用会触发 "暂时性死区",报错,不执行后面的操作。
2.块级作用域,变量仅在当前代码块( {} )内可访问,代码块访问会报错,不执行后面的操作。
3.不允许在同一作用域内重复声明
4.可以重新赋值
三、const
1.块级作用域,与 let 相同
2.不存在变量提升,与 let 相同
3.不允许在同一作用域内重复声明
4.声明的变量不能重新赋值,但如果是对象或数组,其属性/元素可以修改
最佳实践建议:
1. 默认使用 const :当你确定变量值不会改变时
2. 需要重新赋值时使用 let :当变量值需要变化时
3. 尽量避免使用 var :除非需要兼容非常旧的 JavaScript 环境
这种做法可以防止意外修改不应改变的值,并利用块级作用域避免变量泄漏问题,提高代码的可维护性和可读性。
1483

被折叠的 条评论
为什么被折叠?



