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


相关推荐

  • 台式机网线连接笔记本通过wifi上网

    台式机网线连接笔记本通过wifi上网台式机网线连接笔记本通过wifi上网完整方案有时台式机会突然断网,网线没问题,笔记本没问题,问题出在台式机的ip上。完整方案1、网线两端连接笔记本和台式机。以前需要用交叉网线,但是现在的网线好像不作区分了,都能用。2、笔记本端WiFi连接网络3、wlan网络属性勾选网络共享,如果有多个网络,框里选择以太网。4、笔记本的以太网属性中,记下ip地址和子网掩码5、在台式机的以太网属性中,默认网关设置与上面的ip地址相同,因为子网掩码前三位都是255,所以台式机的ip地址前三位与网关相同,后一位好

    2022年6月26日
    23
  • 安装oracle11g oci.exe,oracle 11g安装图解|安装oracle数据库软件详细教程[通俗易懂]

    安装oracle11g oci.exe,oracle 11g安装图解|安装oracle数据库软件详细教程[通俗易懂]oracle是非常强大的数据库软件,有很多朋友对oracle安装并不是很了解,因为除了安装还有一些变量需要设置,下面一起来看看oracle11g安装图解,定能帮助你快速安装oracle11g。Oracle11g安装图解:1、首先下载Oracle11gR2forWindows的版本本站下载地址:其中包括两个压缩包:win64_11gR2_database_1of2.zip,win64_…

    2022年9月21日
    0
  • idea2020 3.3激活码_通用破解码

    idea2020 3.3激活码_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月16日
    232
  • ajax 面试题_javascript 面试题

    ajax 面试题_javascript 面试题1、什么是AJAX,为什么要使用Ajax(请谈一下你对Ajax的认识)什么是ajax:AJAX是“AsynchronousJavaScriptandXML”的缩写。他是指一种创建交互式网页应用的网页开发技术。Ajax包含下列技术:基于web标准(standards-basedpresentation)XHTML+CSS的表示;使用DOM(DocumentObjectModel)进行动态显

    2022年8月29日
    0
  • 织梦首页怎么调用栏目下的文章列表

    织梦首页怎么调用栏目下的文章列表

    2021年9月21日
    35
  • 华为AAA认证详解

    华为AAA认证详解 AAA的基本构架 AAA通常采用“客户端—服务器”结构。这种结构既具有良好的可扩展性,又便于集中管理用户信息。如图1所示。 图1AAA的基本构架示意图  认证    不认证:对用户非常信任,不对其进行合法检查,一般情况下不采用这种方式。    本地认证:将用户信息配置在网络接入服务器上。本地认证的优点是速度快,可以为运营降低成本,缺点是存储信息量受设备硬件条…

    2022年6月7日
    87

发表回复

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

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