js有几种数据类型?别再回答只有6种了![通俗易懂]

js有几种数据类型?别再回答只有6种了![通俗易懂]关注公众号前端开发博客,回复“加群”加入我们一起学习,天天进步作者:_GeekWL链接:https://juejin.cn/post/6908990212236378120前端现在已经…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

关注公众号 前端开发博客,回复“加群”

加入我们一起学习,天天进步

js有几种数据类型?别再回答只有6种了![通俗易懂]

作者:_GeekWL

链接:https://juejin.cn/post/6908990212236378120

前端现在已经发展到2021年了,你还在回答js只有6种数据类型吗?

类型总结

今天我们就来盘盘 JavaScript 到底有几种数据类型?

首先在 js 中数据类型分为原始数据类型与引用数据类型

原始数据类型

  • number

  • string

  • boolean

  • null

  • undefined

  • symbol (ES6)

  • bigint (ES10)

引用数据类型

  • object

在引用数据类型 object 中包括function/array/object

看到这里我们可以发现总共是 8 种数据类型

ES6新增:Symbol

这种数据类型主要用于创建一个独一无二的标识,不废话,上代码:

let obj = {};
obj.a = 1;
let a = Symbol();
obj[a] = 2; // 此时obj内部的a到底是1还是2呢?我们可以打印一下obj

obj {
 a: 1
 Symbol(): 2
 __proto__: Object
} // 此时我们可以发现定义的变量a似乎只是一种标志,并没有具体的属性名

Symbol在执行的时候可以传递一个字符串,例如:

let obj = {};
obj.a = 1;
let a = Symbol('a');
obj[a] = 2; 

obj {
 a: 1
 Symbol(a): 2 // 有字符串的Symbol更能区分每个独一无二的标识
 __proto__: Object
} 

ES10新增:Bigint

我们都知道在 javascript 中有极限数值的精度问题,举个例子:

let a = Number.MAX_SAFE_INTEGER; // 9007199254740991 最大安全整数
console.log(a + 1); // 9007199254740992
console.log(a + 2); // 9007199254740992
console.log(a + 1 === a + 2); // true
// 此时我们可以发现 a + 1 与 a + 2 计算出来的数值是一样的,虽然可以正常计算,但是已经失去了计算的价值

BigInt是一个内置对象,它提供了表示大于最大安全整数之外的方法, bigint 通常用于计算最大安全整数之外的数值:

BigInt(1) === BigInt('1') === 1n

关于BigInt的更多用法可以参考 MDN官方文档[1]

总结

JavaScript一共有 8 种数据类型,其中 7 种原始数据类型(基本数据类型),1 种引用值类型

参考资料

[1]

MDN官方文档: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/BigInt

相关文章

  1. Javascript 里的奇葩知识

  2. 由浅入深,66条JavaScript面试知识点

  3. 20个常用的JavaScript简写技巧

最后

转发文章并关注公众号:前端开发博客,回复 1024,领取前端进阶资料

  1. 回复「电子书」领取27本精选电子书

  2. 回复「加群」加入前端大神交流群,一起学习进步

  3. 回复「JS」获取 JavaScript 精选文章

    js有几种数据类型?别再回答只有6种了![通俗易懂]

分享和在看就是最大的支持❤️

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/196958.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • OHEM代码梳理[通俗易懂]

    OHEM代码梳理[通俗易懂]传送门:相关OHEM的介绍:检测模型改进—OHEM与Focal-Loss算法总结代码地址:OHEM1.前言有关OHEM的介绍请参考上面给出的链接,这里主要就OHEM是怎么运行的做一些简单的分析,整个OHEM的代码也不是很多,这里将算法的步骤归纳为:1)计算检测器的损失,这部分是使用和最后fc6、fc7预测头一样的共享参数,预测分类与边界框回归的结果,将预测的结果与GT进行比较得…

  • 数据库中having用法[通俗易懂]

    数据库中having用法[通俗易懂]having经常与groupby和聚合函数(COUNT,SUM,AVG,MIN,orMAX)一起使用,用来过滤由GROUPBY语句返回的记录集。聚合函数通过作用于一组数据而只返回一个单个值,因此,在SELECT语句中出现的元素要么为一个聚合函数的输入值,要么为GROUPBY语句的参数,否则会出错。HAVING语句的存在弥补了WHERE关键字不能与聚合函数联合使用的不足。…

  • 数论——欧拉函数

    数论——欧拉函数定义小于n的正整数中与n互质的数的数目(φ(1)=1)通式证明:设p是N的质因子,1~N中p的倍数有p,2p,3p,…,(N/p)*p,共N/p个。同理,若q也是N的质因子,则1~N中q的倍

  • 深入Redis客户端(redis客户端属性、redis缓冲区、关闭redis客户端)「建议收藏」

    深入Redis客户端(redis客户端属性、redis缓冲区、关闭redis客户端)「建议收藏」Redis数据库采用I/O多路复用技术实现文件事件处理器,服务器采用单线程单进程的方式来处理多个客户端发送过来的命令请求,它同时与多个客户端建立网络通信。服务器会为与它相连接的客户端创建相应的redis.h/redisClient结构,在这个结构中保存了当前客户端的相关属性及执行相关功能时的数据结构。I/O多路复用:linux有五类io模型1.阻塞2.非阻塞3…

  • jar 解压war_war包解压命令

    jar 解压war_war包解压命令文章来源:java实现可压缩或解压缩WAR文件packageutils;importjava.io.BufferedInputStream;importjava.io.BufferedOutputStream;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;impo…

  • MyBatis架构与源码分析<资料收集>

    MyBatis架构与源码分析<资料收集>

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号