JavaScript var let const 区别

平时写网页代码时,你肯定见过 var、let、const 这三个关键词,它们都是用来声明变量的,但很多新手容易搞混,用的时候出错。其实只要结合生活里的例子,就能轻松分清它们的区别,今天就用大白话给你讲明白。

先搞懂变量的核心需求

不管是 var、let 还是 const,本质都是给“装东西的盒子”起名字,方便后续调用。但生活里的盒子,有的能随便换里面的东西,有的换了就会乱套,有的甚至连盒子本身都不能随便改,这三个关键词就对应了这几种盒子的规则。

JavaScript var let const 区别

var:有点“自由过头”的老派盒子

var 是 JavaScript 早期的变量声明方式,它的规则特别“宽松”,甚至可以说有点“没边界”。最典型的问题就是“作用域乱跑”——简单说,你在某个小区域里声明的 var 变量,整个大区域都能找到它,像一个随便乱跑的快递盒,不管你把它放在玄关还是卧室,全家都能拿东西。

举个生活化的例子:你在厨房(局部作用域)放了个 var 装酱油,结果客厅(全局作用域)的人也能随便拿这个酱油瓶,甚至能把酱油换成醋,等你做饭要用的时候,发现酱油没了,这就出问题了。

而且 var 还能重复声明同一个变量,比如你第一次说“我有个酱油瓶”,过一会又说“我有个酱油瓶”,相当于又拿了一个一模一样的瓶子,最后会乱套。这种“自由过头”的特性,让 var 在复杂代码里很容易出bug,现在已经不推荐用了。

let:更“守规矩”的现代盒子

为了弥补 var 的缺陷,后来 JavaScript 推出了 let,它的规则就严谨多了,是“只在当前小圈子里生效”的局部变量。还是用酱油举例:你在厨房的小圈子里用 let 声明了装酱油的盒子,这个盒子只在厨房能用,客厅的人碰不到,也改不了,厨房外面的人要装酱油,得重新拿个新盒子。

而且 let 不允许重复声明同一个变量,比如你已经在厨房用 let 说“我有个酱油盒”,就不能再说一次“我有个酱油盒”,避免了重复声明的混乱。这种“圈地自守”的特性,让 let 成为现在最常用的变量声明方式,大部分需要改值的场景都能用它。

const:绝对不能乱碰的“锁死盒子”

const 可以理解为“const 就是 constant(恒定)的缩写”,它比 let 更严格,相当于把盒子“锁死”了。用 const 声明的变量,一旦装了东西,就不能再换盒子,也不能改里面装的基本类型数据。

举个例子:你用 const 买了个酱油的礼盒,这个礼盒不仅只能放在厨房用,而且不能换成醋礼盒,也不能随便把酱油倒掉换成别的东西。但要注意一个误区:如果盒子里装的是“组合装”(比如数组或对象),const 只是锁死盒子本身,没锁里面的东西——你可以改礼盒里的小物件,只是不能把整个礼盒换成另一个礼盒。比如你用 const 声明了一个装水果的数组,能往里面加苹果、删香蕉,但不能直接把整个数组换成装零食的数组,这是很多新手容易搞错的地方。

总的来说,现在写代码时,能不用 var 就不用,需要改值的变量用 let,不需要改值的常量用 const,这样既符合现代 JavaScript 的规范,也能减少很多莫名其妙的bug。

上一篇 Swift语言核心特性与实际应用场景知识科普