JavaScript变量无类型,值才有类型;七种原始类型(string、number、bigint、boolean、null、undefined、symbol)不可变且按值传递,其余均为object类型(可变、按引用传递);声明优先用const和let,避免var。

JavaScript 变量本身没有“类型”,真正有类型的是值(value),而变量只是指向这些值的“容器”或“标签”。理解这一点,是正确声明和使用变量的关键。
七种基本数据类型(原始类型)
它们是不可变的、按值传递的:
-
string:文本,如
"hello"、'world'、`template ${x}` -
number:所有数字(整数、小数、NaN、Infinity),如
42、3.14、NaN -
bigint:大整数,用
n结尾,如123n(不能与 number 混算) -
boolean:逻辑值,只有
true和false -
null:一个独立类型,表示“有意为空”的值(注意:
typeof null === "object"是历史 bug) - undefined:变量声明了但未赋值时的默认值,也用于对象中缺失的属性
-
symbol:唯一且不可变的标识符,常用于对象属性键,避免命名冲突,如
Symbol("id")
一种引用类型(对象类型)
除上述七种外,其余都是 object 类型(包括函数、数组、日期、正则、Map、Set、Promise 等)。它们是可变的、按引用传递(实际是“按共享拷贝”语义):
-
{ name: "Alice" }—— 普通对象 -
[1, 2, 3]—— 数组(本质也是对象) -
function() {}或() => {}—— 函数(函数是“可调用对象”) -
new Date()、/\d+/、new Map()等 —— 内置对象实例
判断是否为对象,推荐用 Object.prototype.toString.call(x),比 typeof 更可靠。
立即学习“Java免费学习笔记(深入)”;
标签: javascript java 作用域
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~