Js数据类型

51 阅读1分钟

基本类型

    字符串(String)

    数字(Number)

    布尔(Boolean)

    空(Null)

    未定义(Undefined)

    Symbol

**
**

引用类型

    对象(Object)

    数组(Array)

    函数(Function)

    还有两个特殊的对象:正则(RegExp)和日期(Date)

数据类型区别:

**基本数据类型是直接储存在栈中的数据段,占据空间小,属于被频繁使用的数据
**

    引用数据类型是储存在堆内存中的,占据空间大,他是在栈中存放了指针指向堆中数据的起始地址,需要使用时,会先找到栈中的指针,再找到ui应堆中的位置,获得数据

Symbol:

        是ES6新出的数据类型,Symbol是定义一个独一无二的值,数据具有唯一性,所以 Symbol() != Symbol() ,同时使用Symbol数据作为key不能使用for获取到这个key,需要使用Object.getOwnPropertySymbols(obj)获得这个obj对象中key类型是Symbol的key值

 let key = Symbol('key');
 let obj = { [key]: 'symbol'};
 let keyArray = Object.getOwnPropertySymbols(obj); // 返回一个数组[Symbol('key')]
 obj[keyArray[0]] // 'symbol'

BigInt也是ES6新出的一种数据类型,这种数据类型的特点就是数据涵盖的范围大,能够解决超出普通数据类型范围报错的问题。