首页 > 其他分享 >说一说JS数据类型有哪些,区别是什么?

说一说JS数据类型有哪些,区别是什么?

时间:2022-08-31 07:44:33浏览次数:57  
标签:说一说 obj Symbol Object 数据类型 JS BigInt key

JS数据类型分为两类:一类是基本数据类型,也叫简单数据类型,包含7种类型,分别是Number 、String、Boolean、BigInt、Symbol、Null、Undefined。另一类是引用数据类型也叫复杂数据类型,通常用Object代表,普通对象,数组,正则,日期,Math数学函数都属于Object。

数据分成两大类的本质区别:基本数据类型和引用数据类型它们在内存中的存储方式不同。
基本数据类型是直接存储在栈中的简单数据段,占据空间小,属于被频繁使用的数据。
引用数据类型是存储在堆内存中,占据空间大。引用数据类型在栈中存储了指针,该指针指向堆中该实体的起始地址,当解释器寻找引用值时,会检索其在栈中的地址,取得地址后从堆中获得实体。

 

附加知识:

Symbol是ES6新出的一种数据类型,这种数据类型的特点就是没有重复的数据,可以作为object的key。
数据的创建方法Symbol(),因为它的构造函数不够完整,所以不能使用new Symbol()创建数据。由于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新出的一种数据类型,这种数据类型的特点就是数据涵盖的范围大,能够解决超出普通数据类型范围报错的问题。

使用方法:
-整数末尾直接+n:647326483767797n
-调用BigInt()构造函数:BigInt("647326483767797")

注意:BigInt和Number之间不能进行混合操作

 

标签:说一说,obj,Symbol,Object,数据类型,JS,BigInt,key
From: https://www.cnblogs.com/cyy22321-blog/p/16641619.html

相关文章

  • JSON.parse(JSON.stringify()) 实现对对象的深拷贝
    JSON.parse(JSON.stringify(obj))我们一般用来深拷贝,其过程说白了就是利用JSON.stringify将js对象序列化(JSON字符串),再使用JSON.parse来反序列化(还原)js对象;序列化的作......
  • Java-JSP(1)
    JSP1.jsp原理jsp全称JavaServerPages,是一种动态网页技术,JSP将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容。jsp文件在最后会......
  • Java入门-基础语法(数据类型转换)
    类型转换运算中不同类型的数据先转化为同一类型,然后进行运算。(byte<short<char<int<long<float<double)强制转换:由高到低(类型)变量名自动转换:由低到高注意事项:不能把......
  • React报错之Property does not exist on type 'JSX.IntrinsicElements'
    正文从这开始~总览当组件名称以小写字母开头时,会导致"Propertydoesnotexistontype'JSX.IntrinsicElements'"错误。为了解决该错误,确保组件名称总是以大写字母开头,......
  • d3.js 分页加载
    当数据量过大时,使用d3.js渲染各种图时,如果一下子加载出来,会出现加载过慢,这样使用效果就不是太好,为了解决这个问题,使用了分页加载数据并渐进渲染各种图。一、数据格式......
  • turn.js书本翻页效果插件
     可以制作软纸页或者硬纸页的翻页动画,可设置双页或单页展示。 CDN地址:CDN-turn.js(baomitu.com)官网:Turn.js:ThepageflipeffectinHTML5(turnjs.com)官方......
  • 基础数据类型之数字和字符串
    1.数字类型数字类型的数据可以相互的进行+-/*、也可以进行相互的比较(<>=)1.1整型intage=18记录年龄等整数print(type(age))#int类型int()方法可以将其他类型的数据转换......
  • js三级联动
    <divclass="container"><selectname=""id="hero"><optionvalue="">-请选择-</option></select><selectname=""id="skin"......
  • JS面试题一
    1、所有对象都有原型吗?并不是所有对象都有原型;比如使用Object.create()创建一个对象,我们传递一个参数,那么创建的对象的原型则会指向传递的那个对象;而不传参数,也就是创......
  • js 严格模式
    //js使用严格模式可以规范我们写代码//要启用严格模式,您只需要在JavaScript脚本的开头添加"usestrict";或'usestrict';指令即可,如下所示:<script>"usestrict";......