在 JavaScript 中使用“var”的 3 个理由

2025-05-26

在 JavaScript 中使用“var”的 3 个理由

关键字var是 JavaScript 中声明变量的第一个方法。它很合适,对吧?Var,变量,它的名字就体现了这一点。但就像小丑一样,var它不仅仅是一个漂亮的外表——它还有一些负担。作为一名初级程序员,或者一位刚涉足 JavaScript 开发底层的老手,你可能想知道什么时候应该使用它var来声明 JavaScript 对象和函数。

var别担心。我有 3 个理由推荐你在下一个 JavaScript 项目中使用它。

你热爱传统,拒绝任何新事物

Var 可能是最古老的声明变量的关键字,但它是迄今为止唯一的一个。它有一些年轻的表亲,let并随着ES6 的const出现而一炮走红(截至撰写本文时已超过 6 年!)。但如果你坚持充满风险的旧规范,那就继续使用吧,让这些新贵关键字听听它们糟糕的流行音乐,抱怨它们的父母。var

你喜欢变化,即使你不喜欢

Var 有个麻烦的特点:它创建了一个任意类型的变量,之后又可以将其更改为任意类型的变量。没错,你在第 4 行声明的数字,在第 17 行变成了字符串,在第 109 行又变成了布尔值。这种类型的灵活性是 JavaScript 的一个关键特性,但它是可以避免的。但如果你也喜欢冒险,那就继续使用 Var 吧。

你喜欢泄漏范围

在 ES6 之前,JavaScript 变量始终在函数作用域内定义。在很多情况下,这意味着变量是全局的。JavaScript 不强制使用块级作用域,例如for循环或if块内的作用域。因此,使用 声明的变量var将被提升到其函数作用域的顶部。换句话说,变量声明移动到当前词法环境的顶部,其值为undefined。提升引起的一个常见问题是,这些变量可以在块作用域之外访问,而开发人员可能并不期望它们被访问到。

这里还可能出现一个更微妙、更难检测的错误,那就是变量阴影。这种情况很少见。如果你也遇到这种情况,那么你var就是你的英雄。

一定有更好的方法

如果你读到这里,可能马上就要开始猛烈抨击我关于 的说法是错的了var。事实上,var除了历史课之外,任何人都不应该在任何 JavaScript 代码中使用 。即使这样,也应该加上一个脚注,比如“请不要这样做”。

Let并且在过去六年里,所有主流浏览器const都支持该功能。这在前端时代真的非常非常古老了。这不仅仅是父母对青少年的误解,更是人人都爱的曾祖父母,却没人邀请他们参加有趣的派对。var

Let保留了 JavaScript 灵活的类型系统,同时启用了块级作用域。Const创建一个——你猜对了——块级作用域内的常量变量。Const创建一个无法重新赋值的变量,但与大多数其他语言类似,const对象的属性可以改变。这两种替代方案var应该可以满足你的所有用例。即使你正处于需要支持真正过时的浏览器的困境,也不要使用。使用像Babelvar这样的工具

所以请不要使用var

文章来源:https://dev.to/paritho/3-reasons-to-use-var-in-javascript-1hoe
PREV
🔧 高级 JavaScript 性能优化:技术和模式
NEXT
学习 MongoDB:入门