var、let、const 的作用域差异是什么?变量三兄弟怎么选?

40 次浏览次阅读
没有评论

JavaScript变量三兄弟:var、let、const的终极选择指南

一、变量世界的三大规则

在JavaScript的江湖里,var、let、const如同三兄弟,各自掌握着不同的作用域法则。老大哥var带着”变量提升”的绝技统治ES5时代,而let和const则带着块级作用域的新规则改写ES6后的编码生态。理解它们的核心差异,是每个开发者写出健壮代码的必修课。

二、作用域差异深度解析

1. 作用域类型对比

var的函数作用域:
“`javascript
function testVar() {
if(true) {
var count = 10;
}
console.log(count); // 正常输出10
}
“`

let/const的块级作用域:
“`javascript
function testLet() {
if(true) {
let count = 10;
const MAX = 99;
}
console.log(count); // 报错:count is not defined
console.log(MAX); // 报错:MAX is not defined
}
“`

2. 变量提升与暂时性死区

var的变量提升:
“`javascript
console.log(name); // undefined
var name = “Dora”;
“`

let的暂时性死区:
“`javascript
console.log(name); // 报错:Cannot access ‘name’ before initialization
let name = “Dora”;
“`

3. 函数提升的特殊规则

“`javascript
console.log(sayHi); // 输出函数定义
function sayHi() {}
var sayHi = “hello”;
“`

三、变量三兄弟的选择策略

1. 声明优先级原则

黄金法则:
const优先 → ② let次之 → ③ var特殊场景使用

2. 具体使用场景

声明方式 适用场景 使用比例
const 常量、对象引用、函数表达式 70%
let 循环计数器、条件变量、需要重新赋值的变量 25%
var 旧代码维护、立即执行函数、特殊提升需求 5%

3. 避坑指南

典型错误案例:
“`javascript
for(var i=0; i<3; i++){ setTimeout(() => console.log(i), 100); // 输出3次3
}

for(let j=0; j<3; j++){ setTimeout(() => console.log(j), 100); // 正确输出0,1,2
}
“`

四、现代编码最佳实践

1. 严格模式强制规范

“`javascript
“use strict”;
// 未声明变量直接使用会报错
test = 123; // ReferenceError
“`

2. 对象冻结技术

“`javascript
const config = Object.freeze({
apiUrl: ‘https://api.example.com’,
timeout: 5000
});
“`

3. 循环中的优化策略

“`javascript
// 缓存数组长度优化
const items = [/ 大数据数组 /];
for(let i=0, len=items.length; i五、从ES6看变量声明演进

发展路线图:
var(ES5) → let/const(ES6) → 模式匹配(ES2020提案)

总结

掌握变量三兄弟的核心差异,本质上是理解JavaScript从”函数作用域”到”块级作用域”的进化历程。在现代开发中,const声明应成为默认选择,let处理需要变化的变量,var则退居二线成为历史代码的见证者。这种选择策略不仅能避免90%的作用域陷阱,还能显著提升代码的可维护性和可读性。

正文完
 0

辉哥

一言一句话
-「
最新文章
2026年抖音小店新手期考试答案是什么?多久自动通过?

2026年抖音小店新手期考试答案是什么?多久自动通过?

2026年抖音小店新手期考试答案是什么?多久自动通过? 抖音小店新手期是每位新商家必须经历的考核阶段,许多刚入...
2026年抖音即时零售怎么设置库存?可售库存为0怎么回事?

2026年抖音即时零售怎么设置库存?可售库存为0怎么回事?

2026年抖音即时零售怎么设置库存?可售库存为0怎么回事? 2026年,抖音即时零售已经成为商家争夺本地流量的...
2026年淘宝618怎么报名?有哪些核心优惠?

2026年淘宝618怎么报名?有哪些核心优惠?

2026年淘宝618怎么报名?有哪些核心优惠? 淘宝618作为全年最重要的年中购物狂欢节之一,已经成为消费者和...
2026年淘宝聚划算是什么活动?多久举办一次?

2026年淘宝聚划算是什么活动?多久举办一次?

2026年淘宝聚划算是什么活动?多久举办一次? 淘宝聚划算作为阿里巴巴旗下的经典促销品牌,一直以“低价正品、超...
2026年淘宝访客少怎么优化?流量和访客哪个更重要?

2026年淘宝访客少怎么优化?流量和访客哪个更重要?

2026年淘宝访客少怎么优化?流量和访客哪个更重要? 2026年的淘宝生态越来越卷,很多卖家发现店铺访客数量持...
2026年京东618消费券发几次?活动持续多久?

2026年京东618消费券发几次?活动持续多久?

2026年京东618消费券发几次?活动持续多久? 随着电商平台的年中大促越来越受关注,京东618作为消费者最期...
2026年京东次日达会上门吗?赔偿标准怎么定?

2026年京东次日达会上门吗?赔偿标准怎么定?

2026年京东次日达会上门吗?赔偿标准怎么定? 2026年,京东次日达作为最受欢迎的快速配送服务之一,依然是很...
亚马逊店铺怎么装修?新手装修步骤是什么?

亚马逊店铺怎么装修?新手装修步骤是什么?

亚马逊店铺怎么装修?新手装修步骤是什么? 在亚马逊平台上,一个精心装修的店铺能显著提升品牌形象、吸引流量并提高...
亚马逊店铺可以转让吗?是否支持过户?

亚马逊店铺可以转让吗?是否支持过户?

亚马逊店铺可以转让吗?是否支持过户?2025最新解析 在跨境电商领域,亚马逊作为全球最大平台之一,许多卖家在经...
京东618买手机真的划算吗?苹果一般降多少?

京东618买手机真的划算吗?苹果一般降多少?

京东618买手机真的划算吗?苹果一般降多少? 随着2025年京东618购物节火热进行中,无数消费者都在纠结:京...
京东618会比国补还便宜吗?整体优惠力度如何?

京东618会比国补还便宜吗?整体优惠力度如何?

京东618会比国补还便宜吗?整体优惠力度如何? 618购物节作为京东年度最大促销活动之一,每年都引发消费者热议...