JS中的八种数据类型 您所在的位置:网站首页 js的五种基本数据类型 JS中的八种数据类型

JS中的八种数据类型

2023-11-12 14:19| 来源: 网络整理| 查看: 265

JS数据类型

文章目录 JS数据类型1.对象(object)2.原始类型Symbol基本概念Symbol的用处:(核心:Symbol是唯一的)全局Symbol BigInt1.基础使用2.与Number类型的混合

1.对象(object)

无序属性的集合,其属性可以包含基本值、对象、或者函数

2.原始类型

​ 只能提供单一值,无法额外存储数据,所有的方法操作都是在对应的“对象包装器”创建临时对象的帮助下执行的。

Number

String

Boolean

“undefined”

“null”

Symbol

BigInt

着重看一下Symbol与BigInt这两个新的原始类型

Symbol 基本概念

Symbol 值表示唯一的标识符。

可以使用 Symbol() 来创建这种类型的值:

let name1 = Symbol("name");//"name"为描述,可选

即使相同描述,Symbol也不同。

let name1 = Symbol("name");//"name"为描述,可选 let name2 = Symbol("name");//"name"为描述,可选 console.log(name1===name2);//false

注意:Symbol并不支持字符串的隐式转换

我们无法:

alert(name1);

而是使用:

alert(name1.toString())

或是:

alert(name1.description)

所以在对象中使用Symbol时,我们应当:

let user = { [name1] : "john", age : 20 }; alert(user.age); alert(user[name1]); Symbol的用处:(核心:Symbol是唯一的)

1."隐藏"属性

​ 如果我们想要向“属于”另一个脚本或者库的对象添加一个属性,我们可以创建一个 Symbol 并使用它作为属性的键。

​ Symbol 属性不会出现在 for..in 中,因此它不会意外地被与其他属性一起处理。并且,它不会被直接访问,因为另一个脚本没有我们的 symbol。因此,该属性将受到保护,防止被意外使用或重写。

2.JavaScript 使用了许多系统 Symbol,这些 Symbol 可以作为 Symbol.* 访问。我们可以使用它们来改变一些内置行为。

全局Symbol

​ 通常所有的 Symbol 都是不同的,即使它们有相同的描述。但如果我们想创建两个不同地点的变量指向同一个Symbol呢

Symbol.for():在全局注册表中通过描述创建/查找Symbol

let name1 = Symbol.for("name"); let name2 = Symbol.for("name"); alert(name1===name2);//true

Symbol.keyFor():在全局注册表中通过全局Symbol查找其描述

let name1 = Symbol.for("name"); alert(Symbol.keyFor(name1));//name

注意:上面两个方法仅限全局Symbol

let name1 = Symbol("name"); alert(Symbol.keyFor(name1))//undefined --------------------------------------- let name1 = Symbol.for("name"); alert(Symbol.keyFor(name1))//name BigInt

​ 在JS中,按照IEEE 754-2008标准的定义,所有数字都以双精度64位浮点格式表示。(-9007199254740991 (-(253-1))------9007199254740991(253-1))

​ 使用BigInt,应用程序不再需要变通方法或库来安全地表示Number.MAX_SAFE_INTEGER和Number.Min_SAFE_INTEGER之外的整数。

1.基础使用

​ 整数末尾追加n

console.log(123546489694555656161n);

​ BigInt()构造函数

BigInt("9007199254740995");

PS:

​ 除一元加号运算符外,其余运算符均可正常使用但除法(/)运算符的结果会自动向下舍入到最接近的整数。

​ (+)运算符,将操作数转化为Number类型

+"3.0"//3 10 + "15"//1015 10 + + "15"//25 2.与Number类型的混合

​ 不能混合算术操作但可以进行关系运算,位操作符可以使用但必须左右统一类型。

​ 不能把BigInt传递给需要Number类型参数的JS内置函数和Web API



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有