首页 > web前端 > js教程 > 正文

javascript变量如何声明_let、const和var有什么区别?

夢幻星辰
发布: 2025-12-21 17:21:43
原创
318人浏览过
JavaScript中变量声明用let、const、var,核心区别在于:let/const为块级作用域且有暂时性死区,var为函数作用域并提升初始化为undefined;let不可重复声明,const不可重复声明且必须初始化、不可重新赋值;推荐默认用const,需重赋值时用let,避免使用var。

javascript变量如何声明_let、const和var有什么区别?

JavaScript 中声明变量主要用 letconstvar,它们的核心区别在于作用域、变量提升(hoisting)、重复声明规则以及是否可重新赋值。

作用域不同:块级 vs 函数级

letconst 是块级作用域(block-scoped),只在 {} 内有效,比如 if 语句、for 循环或任意代码块中定义,外部无法访问。
var 是函数作用域(function-scoped),在函数内声明时,整个函数都可访问;若在函数外声明,则是全局作用域。

例如:

巧文书
巧文书

巧文书是一款AI写标书、AI写方案的产品。通过自研的先进AI大模型,精准解析招标文件,智能生成投标内容。

巧文书 281
查看详情 巧文书

立即学习Java免费学习笔记(深入)”;

if (true) {
  let x = 1;
  var y = 2;
}
console.log(x); // ReferenceError
console.log(y); // 2(var 被提升并初始化为 undefined)

变量提升行为不同

var 会被“提升”到作用域顶部,并初始化为 undefined,所以可以先使用后声明(但不推荐)。
letconst 也会被提升,但不会初始化,从声明前到声明行之间存在“暂时性死区”(Temporal Dead Zone, TDZ),此时访问会报 ReferenceError

例如:

立即学习Java免费学习笔记(深入)”;

console.log(a); // undefined
console.log(b); // ReferenceError
var a = 1;
let b = 2;

重复声明与赋值限制

  • var 允许在同一作用域内重复声明(无报错,后声明覆盖前声明)
  • let 不允许重复声明(同作用域下再用 let 声明同名变量会报 SyntaxError
  • const 不仅不能重复声明,还必须在声明时初始化,且之后不能重新赋值(注意:对象或数组本身可修改其属性/元素,只是不能把变量指向新地址)

例如:

立即学习Java免费学习笔记(深入)”;

var a = 1;
var a = 2; // OK

let b = 1;
let b = 2; // SyntaxError

const c = [];
c.push(1); // OK,修改内容
c = [2]; // TypeError:不能重新赋值

实际使用建议

  • 默认用 const:适用于大多数场景,尤其是引用类型(对象、数组、函数)和基础类型常量
  • 需要重新赋值时改用 let:比如循环计数器、条件分支中需变更的值
  • 避免使用 var:容易引发意料外的行为(如变量提升、作用域混淆),ES6 后已不推荐

现代 JavaScript 开发中,constlet 已成为标准,理解它们的差异能帮你写出更可靠、易维护的代码。

以上就是javascript变量如何声明_let、const和var有什么区别?的详细内容,更多请关注php中文网其它相关文章!

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号