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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Oracle PL/SQL编程详解之七:程序包的创建与应用

    Oracle PL/SQL编程详解之七:程序包的创建与应用Oracle PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!) 本篇主要内容如下:第七章  程序包的创建和应用7.1  程序包简介7.2  程序包的定义7.3  包的开发步骤7.4  包定义的说明7.5  子程序重载7.6  加密实用程序7.7  删除包7.8  包的管理  7.1  程序包简介    程序

    2022年6月17日
    27
  • ES6数组的各种方法「建议收藏」

    ES6数组的各种方法「建议收藏」1.ES6数组的各种方法2.forEach()函数①数组名.forEach(function(数组中一个元素的值){对这个值进行处理….})②数组名.forEach(test)test为方法名,不用加(),把函数引用传进去③利用函数引用这种方式的话,会自己把每个值传进去,不需要用()传进去3.map()方法①map()方…

    2022年6月13日
    27
  • mysql读写分离原理详解(主从复制和读写分离)

    主库记录二进制日志。在每次准备提交事务完成数据更新前,主库将数据更新的事件记录到二进制日志中。MySQL会按事务提交的顺序而非每条语句的执行顺序来记录二进制日志。在记录二进制日志后,主库会告诉存储引擎可以提交事务了。下一步,备库将主库的二进制日志复制到其本地的中继日志中。首先,备库会启动一个工作线程,称为I/O线程,I/O线程跟主库建立一个普通的客户端连接,然后在主库启动一个特殊的二进制转储线程,…

    2022年4月10日
    34
  • C++ 编程之QueryInterface函数(一)

    C++ 编程之QueryInterface函数(一)前言组件对外公布的是接口;一个组件可以实现多个接口,也就是说可以对外公布多个接口,之前也总结过了,你很少会100%的去完全了解一个组件的所有接口,就像你去学习编程一样,你几乎不可能去成为编程中的全才。那么,既然我们不能去完全的了解一个组件提供的所有接口,那么我们在实际开发中,如何去判断一个组件是否提供对应的接口呢?看文档?是的,是个好主意,在文档的海洋,找到一个知识点,真的很难,浪费时间和

    2022年7月22日
    12
  • Java零基础快速入门的方法

    Java零基础快速入门的方法各种各样的编程语言不断崛起,但唯有Java是牢牢占据着老大的位置,目前几乎90%以上的大中型互联网应用系统在服务器端开发首选Java。因此,也是吸引了不少年轻人投入到Java的学习之中。​所以,今天就跟大家分享一份系统的Java学习教程路线图,零基础也可以无压力的走进Java,学习Java!第一阶段:Java语言入门到精通学习任何一门编程语言,首先要学习的是基础语法,开启Java学习的第一步,当然就是深入掌握计算机基础、编程基础语法,面向对象,集合、IO流、线程、并发、异常及网络编程,这些我

    2022年6月3日
    28
  • GBDT算法详解_gbdt算法

    GBDT算法详解_gbdt算法基本思想GBDT的基本结构是决策树组成的森林,学习方式是梯度提升。具体的讲,GBDT作为集成模型,预测的方式是把所有子树的结果加起来。GBDT通过逐一生成决策子树的方式生成整个森林,生成新子树的过程是利用样本标签值与当前树林预测值之间的残差,构建新的子树。例如,当前已经生成了3课子树了,则当前的预测值为D(x)=d1(x)+d2()x+d3(x),此时我们得到的当前的预测值为D(x)效果并不好,与真正的拟合函数f(x)还有一定的差距。GBDT希望的是构建第四棵子树,使当前树林的预测结果D(x)与第四棵

    2022年10月12日
    0

发表回复

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

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