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

news/2024/7/5 5:27:21

JS数据类型有哪些?

首先JS数据类型有Number、String、Boolean、BigInt、Symbol、Null、Undefined、Object、8种。

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

两类数据类型的区别

本质区别:基本数据类型和引用数据类型它们在内存中的存储方式不同。

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

引用数据类型是储存在堆内存中,占用空间大。引用数据类型在栈种储存了指针,改指针指向堆内存中实体的起始地址,当解释器寻找到引用值时,会检索其在栈中的地址,取得地址后从堆中获得实体。

附加知识

1.BigInt:BigInt 是一种内置对象,它提供了一种方法来表示大于 - 1的整数。2^53 - 1 为Number可以表示的最大数字,BigInt可以突破限制,可以用任意精度表示整数,超出Number的安全整数限制,也可以安全地存储和操作大整数。chrome 67+开始支持使用。当使用BigInt时,带小数的运算会被取整。

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

2.Symbol:Symbol是ES6新出的一种数据类型,这种数据类型的特点就是没有重复的数据,可以作为object的key。

数据的创建方法Symbol(),因为它的构造函数不够完整,所以不能使用new Symbol()创建数据。由于Symbol()创建数据具有唯一性,所以 Symbol() !== Symbol(), 同时使用Symbol数据作为key不能使用for获取到这个key,需要使用Object.getOwnPropertySymbols(obj)获得这个obj对象中key类型是Symbol的key值。

Symbol特点:

  • Symbol的值是唯一的,用来解决命名冲突问题

  • Symbol值不能与其他数据进行运算

  • Symbol定义的对象属性不能使用for...in循环遍历,但是可以使用Reflect.ownKeys来获取对象的所有键名


http://lihuaxi.xjx100.cn/news/821441.html

相关文章

React:有关a标签控制台警告的一些问题

近几日在写react项目的时候,发现了一些问题,特此记录! 目录 1.控制台警告信息,由target"_blank"引起的问题 2.由href""引起的问题 1.控制台警告信息,由target"_blank"引起的问题 Usi…

一篇掌握分布式锁

分布式锁理解 1.业务场景引入 在进行代码实现之前,我们先来看一个业务场景: 系统A是一个电商系统,目前是一台机器部署,系统中有一个用户下订单的接口,但是用户下订单之前一定要去检查一下库存,确保库存足…

一篇了解SSO单点登录

SSO基础 文章目录SSO基础1.什么是单点登录?2.回顾普通系统登录3.多系统登录的问题与解决?3.1.Session不共享问题XXL-SSO框架基础入门1.什么是XXL-SSO2.特性3. 官方Demo分析3.1 SSO Server中央认证服务3.2 SSO Client应用(Cookie形式&#xff…

XSS Challenges

XSS 挑战 (由 yamagata21) - 阶段 #1 (int21h.jp) 题目要求注入 JavaScript 命令: alert(document.domain); Stage #1 输入321来定位代码的位置,发现是处于<b></b>标签之内,没有任何过滤 // 第一种方法是闭合 b 标签,插入 Script 标签 "</b> <…

《矩阵论》学习笔记

目录线性代数引论线性空间线性变换及矩阵Jordan标准型欧式空间和酉空间最小二乘法矩阵的分解三角分解QR分解正规矩阵及Schur分解满秩分解奇异值分解单纯矩阵的谱分解矩阵的广义逆广义逆矩阵广义逆矩阵AA^AAA^A的几种基本求法广义逆与线性方程组线性方程组的相容性、通解与A{1}A…

9 个视图子类、视图集、 路由系统、认证组件

目录1.9 个视图子类2 视图集2.1 通过ModelViewSet编写5个接口2.3 ViewSetMixin源码分析2.4 from rest_framework.viewsets包下的类2.5 视图层大总结3 路由系统3.1 自动生成路由3.2 action 装饰器4 认证组件4.1 登录接口4.2 认证功能4.3 全局使用4.4 局部使用 1.9 个视图子类 # …

【Leetcode】面试题 08.05. 递归乘法、HJ55 挑7

作者&#xff1a;小卢 专栏&#xff1a;《Leetcode》 喜欢的话&#xff1a;世间因为少年的挺身而出&#xff0c;而更加瑰丽。 ——《人民日报》 目录 面试题 08.05. 递归乘法 HJ55 挑7 面试题 08.05. 递归乘法 面试题 08.05. 递归乘法 题…

【LeetCode每日一题】【2023/2/6】2331. 计算布尔二叉树的值

文章目录2331. 计算布尔二叉树的值方法1&#xff1a;递归2331. 计算布尔二叉树的值 LeetCode: 2331. 计算布尔二叉树的值 简单\color{#00AF9B}{简单}简单 给你一棵 完整二叉树 的根&#xff0c;这棵树有以下特征&#xff1a; 叶子节点 要么值为 0 要么值为 1 &#xff0c;其中…