Skip to content

JS数据类型和8个falsy值

JavaScript基本类型

基本类型为nullundefinednumbersymbolbooleanstringbigInt(简单数据类型) | object(复杂数据类型)。

Number:为双精度浮点数64位类型。

BigInt:为任意精度数字类型。

引用数据类型为ObjectArrayFunction等。

简单数据类型(值类型)

类型描述
number用于表示数值,包括整数和浮点数。JavaScript中所有的数字都是以浮点数的形式存储的,遵循IEEE 754标准。
string用于表示文本,可以是单引号或双引号包裹的一系列字符。
boolean用于表示逻辑值,只有两个可能的值:truefalse
null用于表示一个空值或不存在的对象引用。虽然null被视为一个对象,但在类型检查中它被认为是基本类型。
undefined用于表示尚未赋值的变量,或函数返回没有明确返回值时的结果。
symbolES6(ECMAScript 2015)引入的新类型,用于创建唯一的符号标识符,主要在对象的键中使用。
bigintES10(ECMAScript 2019)引入的新类型,用于表示大于Number.MAX\_SAFE\_INTEGER(即2^53 - 1)的整数。

复杂数据类型(引用类型)

类型描述
Object最通用的复杂数据类型,它可以包含键值对集合,以及方法和属性。
Array本质上是一种特殊的对象,用于存储有序的元素列表。
Function在JavaScript中,函数也是对象,可以作为数据进行传递。
Date表示日期和时间的对象。
MapMap对象保存键值对,并且能够记住键的原始插入顺序。任何值(对象或者原始值)都可以作为键或值。
SetSet对象允许你存储任何类型(无论是原始值还是对象引用)的唯一值
WeakMapWeakMap是一种键值对的集合,其中的键必须是对象或非全局注册的符号,且值可以是任意的 JavaScript 类型,并且不会创建对它的键的强引用。
WeakSetWeakSet是可被垃圾回收的值的集合,包括对象和非全局注册的符号。WeakSet 中的值只能出现一次。它在 WeakSet 的集合中是唯一的。

假值

假值(falsy,有时写为 falsey)是在布尔上下文中认定为 false 的值。

类型描述
nullNull关键词 null — 任何值的缺失。
undefinedUndefinedundefined — 原始类型值。
falseBoolean关键字 false
NaNNumberNaN — 不是一个数字。
0NumberNumber — 零,也包括 0.0、0x0 等。
-0NumberNumber — 负的零,也包括 -0.0、-0x0 等。
0nBigIntBigInt — 零,也包括 0x0n 等。需要注意没有 BigInt 负的零 —— 0n 的相反数还是 0n
""String字符串值,也包括''和````。
document.allObject唯一具有假值的 JavaScript 对象是内置的 document.all。非ie浏览器的第九个falsy值:document.all(已经弃用)
if (false)
if (null)
if (undefined)
if (0)
if (0n)
if (NaN)
if ('')
if ("")
if (``)
if (document.all)

https://developer.mozilla.org/zh-CN/docs/Glossary/Falsy