JavaScript的八种数据类型
一、JavaScript 的数据类型分为两大类:
1.1 基本数据类型:
string
、 number
、 boolean
、 undefined
、 null
、 symbol
、 bigint
1.1.1 Symbol
symbol 类型是 ES6 新增的一种数据类型,这种数据类型的特点就是没有重复的数据,作为 object 的 key 使用可以保证不会不会与其他属性名产生冲突,防止某一个 key 被不小心改写或覆盖。
数据通过 Symbol() 创建,可以接收一个字符串用来作为描述,便于区分。
同时使用 Symbol 作为 key 的话是无法使用普通遍历的方式获取到的,需要通过 Object.getOwnPropertySymbols(object) 才能获取到 object 对象中 key 值为 symbol 类型的 key
let key1 = Symbol('level') let key2 = Symbol('deposit') const people = { name: '小明', age: 20, [key1]: '优秀', [key2]: '一个小目标', } // 比较 console.log(key1) // Symbol(level) console.log(people[key1]) // 优秀 let sybList = Object.getOwnPropertySymbols(people) console.log(sybList); // [Symbol(level), Symbol(deposit)] for (const pro of sybList) { console.log(people[pro]); // 优秀 // 一个小目标 }
1.1.2 Bigint
Bigint 是 ES11 新增的一种数据类型,这种数据类型的特点就是数据涵盖范围大,比 Number
数据类型支持的范围更大的整数值。
可以通过在整数后面增加一个 n 的方式定义,也可以调用函数 Bigint() 并传递一个整数或字符串
注意:
- Bigint 不能和 Number 一起运算,必须转换为同一数据类型 ( Bigint 转换为 Number 可能会丢失精度 )
- Bigint 不能使用 Math 对象中的方法
- Bigint 和 Number 是宽松相等的
- Bigint 和 Number 之间是可以比较的
let bigInt = 1n; let num = 1; console.log(typeof bigInt) // bigint console.log(typeof num) // number // console.log(bigInt + num) // 报错 console.log(bigInt == num); // true console.log(bigInt === num); // false console.log(bigInt > 0); // true
1.2 引用数据类型:
object (其中 array、function、data、Math等归属于object)
二、基本数据类型和引用数据类型的区别
基本数据类型是直接存放在栈中的简单数据段,占用的空间大小固定且较小
引用数据类型存放在堆内存中,占据空间大,在栈中存储指针,指向该数据在堆中的内存地址
三、类型检测
typeof NaN // number typeof undefined // undefined typeof null // object typeof function a() {} // function typeof [] // object console.log(true + 1) // 2 console.log(!null) // true
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?