JS的数据类型
文章类型:Javascript
发布者:admin
发布时间:2022-08-15
js中数据类型分两类 一个是基础类型,一个是引用类型
一:基础类型
其中包括 Number、String、Boolean、BigInt、Symbol、Null、Undefined
var str2 = "world";
var num2=520;
var x=true;
var a=null;
var b=undefined
js数组类型精度是有限的
console.log(0.1+0.2) //0.30000000000000004
console.log(parseFloat((0.1+0.2).toFixed(10))) //0.3
es6新推出的BigInt和Symbol 数据类型
BigInt类型主要是解决普通数据类型范围报错的问题,数据范围涵盖非常大,使用方式就是直接在数字后面加n,注意不能于Number类型共用
let sum=BigInt(9445455547887754564545877887787896567887n)+BigInt(944545556455644645665546456478878545567887n)
console.log(sum.toString()) //953991012003532400230092334366666442135774
Symbol 的本质是表示一个唯一标识。每次创建一个Symbol,它所代表的值都不可能重复
主要用于创建唯一值场景,和对象的key有区别,可以同名,但是实际是唯一的,而对象的key不能同名,如果同名则后面会替换前面的
const name=Symbol('name')
const name1=Symbol('name')
const persons = {
[name]: '张三',
[name1]: '李四'
}
const personsobj={
name:'张三',
name:'李四'
}
console.log(personsobj) //name: '李四'}
console.log(Object.getOwnPropertySymbols(persons))//[Symbol(name), Symbol(name)]
console.log(persons) //{Symbol(name): '张三', Symbol(name): '李四'}
console.log(persons[name]) //张三
console.log(persons[name1]) //李四
基本类型存储是直接存储在栈中,占用空间少
二:引用类型
也叫复杂类型Object,像普通对象、数组、正则、日期、Math、函数都属于
引用类型是存储在堆中,占据空间大,在栈中存储了该指针,指针则指向该实体的起始地址,
当需要寻找引用值时,则检索栈中地址,取到栈中地址后再从堆中拿到实体