JS中的八种数据类型 | 您所在的位置:网站首页 › js的五种基本数据类型 › JS中的八种数据类型 |
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);//trueSymbol.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 实验室设备网 版权所有 |