var具有函数作用域、变量提升和可重复声明特性;声明被提升至作用域顶部但赋值不提升,块语句中声明仍可在外部访问,重复声明不报错但会覆盖赋值。

在旧版 JavaScript 代码中,var 是最常用的变量声明方式,它具有函数作用域、变量提升(hoisting)和可重复声明等特性。虽然现代开发推荐使用 let 和 const,但理解 var 对维护或阅读老项目(如 jQuery 时代、ES5 及更早的代码)仍很必要。
基本语法:用 var 声明变量
var 后跟变量名,可选赋初值:
var userName;var age = 25;var name = "Alice", city = "Beijing", isActive = true;
支持一次声明多个变量(用逗号分隔),未赋值时值为 undefined。
作用域特点:函数作用域,不是块级
var 声明的变量只在**当前函数内有效**;若在函数外声明,则是全局变量(挂载到 window 或 global 上)。
注意:在 if、for 等块语句中用 var 声明,变量仍可在块外访问:
if (true) { var x = 10;}console.log(x); // 10 —— 不报错
变量提升:声明会被“提”到作用域顶部
JavaScript 引擎会把所有 var 声明移到当前作用域开头(仅声明,不包括赋值):
console.log(a); // undefined(不是 ReferenceError)var a = 5;// 实际执行顺序相当于:var a;console.log(a); // undefineda = 5;
因此,var 变量可在声明前访问(值为 undefined),但不可靠,易引发逻辑错误。
重复声明与覆盖:允许且无警告
同一作用域内多次用 var 声明同名变量,不会报错,后一次声明会忽略,但赋值仍生效:
var count = 1;var count = 2;console.log(count); // 2var count; // 无效果,count 还是 2
这种宽松行为容易掩盖拼写错误或逻辑疏漏,也是 let 被引入的重要原因。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











