作者:小杰01234 | 来源:互联网 | 2023-09-03 12:05
首先一听到js数据类型脑子里面就会立马想到六种:Undefined类型,Null类型,Boolean类型,Number类型,String类型,Object类型但是后来ES6新增
首先一听到js数据类型脑子里面就会立马想到六种:
Undefined类型,Null类型,Boolean类型,Number类型,String类型,Object类型
但是后来ES6新增了Symbol属性,还有谷歌6,7版本中还出现了一种bigint属性
Undefined只是一个值。在var一个变量没有初始化的时候这个变量就是Undefined
null值表示一个空对象指针,如果定义的变量准备在将来用于保存对象,应该将该变量初始化为null。
boolean类型有两个值true或false
Number类型就是数字类型,表示数据的整数和浮点数。某些语言中也称为“双精度值”。包含整数和浮点数(浮点数数值必须包含一个小数点,且小数点后面至少有一位数字)两种值
String类型就是一个引用数据类型默认为null,也是final类型不能被更改也不能继承
object类型就是几种基本数据类型被没有顺序的结合在一起,重要的属性是prototype
使用这个属性可以动态的扩展一个对象的函数或者属性
Symbol属性这个属性名是独一无二的,可以保证不会与其他属性名产生冲突,是通过Symbol函数生成
BigInt 类型,是指安全存储、操作大整数。(但是很多人不把这个做为一个类型)。
值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。
基本数据类型: 直接存储在栈(stack)中,占据空间小、大小固定,属于被频繁使用数据,所以放入栈中存储。
引用数据类型:对象(Object)、数组(Array)、函数(Function)。
引用数据类型: 同时存储在栈(stack)和堆(heap)中,占据空间大、大小不固定。引用数据类型在栈中存储了指针,该指针指向堆中该实体的起始地址。当解释器寻找引用值时,会首先检索其在栈中的地址,取得地址后从堆中获得实体。