You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中的intrinsic(固有)数据类型是什么?

JavaScript中的Intrinsic(固有)数据类型是什么?

嘿,我来给你把这个概念讲明白~在JavaScript里,intrinsic(固有)数据类型其实就是引擎原生内置的、最底层的原始数据类型——它们是构成所有JS值的基础单元,本身不是对象,也没有自己的属性/方法(不过实际使用中有些看似能调用方法,是引擎偷偷做了包装,后面会说)。

所有的Intrinsic数据类型包括:

  • undefined:表示变量声明后未赋值的状态,或者函数没有返回值时的结果,比如let a; console.log(a)就会输出undefined。
  • null:表示一个刻意设置的“空值”,注意它是原始类型哦,虽然用typeof null会返回'object',这是JS早期的历史bug,千万别被误导。
  • boolean:只有两个值的类型——true和false,用来表示逻辑判断的结果。
  • number:用于表示数值,包括整数、浮点数,还有一些特殊值比如NaN(非数字)、Infinity(无穷大)。
  • string:表示文本内容,用单引号、双引号或者反引号包裹,比如'hello'、"world"。
  • symbol:ES6新增的类型,每个symbol值都是唯一且不可变的,常用来作为对象的私有属性键,避免属性名冲突。
  • bigint:ES2020新增的类型,用来表示超出number类型范围(大于253-1或小于-253+1)的整数,写法是在数字后面加n,比如9007199254740991n。

容易混淆的小细节:

你可能会疑惑,为什么字符串能调用slice()、toUpperCase()这类方法?其实这是JS引擎的“语法糖”——当你对原始字符串调用方法时,引擎会临时把它包装成对应的String对象,调用完方法后再销毁这个对象,本质上字符串还是原始的intrinsic类型。举个例子:

const greeting = 'hi there';
console.log(typeof greeting); // 输出 'string'(原始类型)
console.log(greeting.toUpperCase()); // 输出 'HI THERE' —— 引擎临时创建了String对象来调用方法

和非Intrinsic类型的区别:

像对象(包括数组、函数、日期、正则表达式这些)都不属于intrinsic数据类型,它们是基于原始类型构建的复杂结构,本质上是引用类型,有自己的属性和方法,并且可以被修改。

内容的提问来源于stack exchange,提问作者Eduard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:31:43