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种了![通俗易懂]

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

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

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

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 时间控件(选择时间范围的插件)「建议收藏」

    时间控件(选择时间范围的插件)「建议收藏」后台开发,一般都是有筛选条件的查询,那么问题就来了,根据日期范围搜索的情况下,插件要怎么选????Laydate时间控件这个是最开始,我采用的是两个时间插件,其他也没啥,就是运营部门使用起来可能感觉太麻烦,为啥不能一次让我选了,还有说老是忘记选择结束时间,然后就有了我接下来的工作。。。在此,给大家推荐一款很好使用的日期与时间组件…

    2022年5月10日
  • ubuntu java 卸载_ubuntu 怎么卸载java「建议收藏」

    ubuntu java 卸载_ubuntu 怎么卸载java「建议收藏」很简单。许多人比较厌恶Java,但是很有可能因为某些原因你需要安装Java,尽管你很讨厌它。在这篇文章中,我们将展示如何在Ubuntu14.04安装Java(也可能在LinuxMint17同样适用)。JREvsOpenJDKvsOracleJDK在我们继续了解如何安装Java之前,让我们快速地了解JRE、OpenJDK和OracleJDK之间的不同之处。JRE(JavaRunt…

    2022年5月12日
  • conda 删除源_conda删除包

    conda 删除源_conda删除包记录自己新建一个py3.5的conda环境,遇到镜像连接超级慢,清华的镜像也不太行的亚子,发现之前安装的anaconda中有一个源速度还可以。一、查看自己conda的链接进入cmdcondainfo调出conda的信息二、添加源condaconfig–addchannelshttps://repo.continuum.io/pkgs/main/condaconf…

    2022年9月27日
  • 国内免费php mysql空间,[php mysql]国内有什么好的免备案免费php+mysql空间

    国内免费php mysql空间,[php mysql]国内有什么好的免备案免费php+mysql空间国内有什么好的免备案免费php+mysql空间问题补充:稳定点的,速度过得去就可以.谢谢●我一直在用”主机屋”提供的免费空间.稳定性可以运作几年了.不用备案.用了马上就知道好.百度搜索”主机屋”php+mysql实现无限级分类问题补充:php+mysql实现无限级分类●项目思路分析:一个PHP项目要用到分类,但不确定分几级,所以就想做成无限级分类。一开始想是按以前一样,数据库建4个值,如下:…

    2022年6月29日
  • phpstorm2021 激活码【2021免费激活】

    (phpstorm2021 激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~2QQ4OQYW6M-eyJsaWNlb…

    2022年3月22日
  • 视频的行为识别「建议收藏」

    视频的行为识别「建议收藏」1.概述使用DL方法解决视频中行为识别/动作识别的问题解决思路有三个分支:分别是two-stream(双流)方法,C3D方法以及CNN-LSTM方法。本文将从算法介绍、算法架构、参数配置、训练集预处理、算法优势及原因、运行结果六个方面对每种算法进行阐释,并对每一个分支的算法集合总结自己的心得。本文暂不区分行为识别(ActivityRecognition)与动作识别(ActionRecog…

    2022年6月9日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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