JavaScript 语言的第七种数据类型 - Symbol

时间:2020-03-24
本文章向大家介绍JavaScript 语言的第七种数据类型 - Symbol,主要包括JavaScript 语言的第七种数据类型 - Symbol使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

前六种是:undefinednull、布尔值(Boolean)、字符串(String)、数值(Number)、对象(Object)。

symbol生成

let s = Symbol();
typeof s
// "symbol"

Symbol函数可以接受一个字符串作为参数

let s1 = Symbol('foo');
let s2 = Symbol('bar');

s1 // Symbol(foo)
s2 // Symbol(bar)

s1.toString() // "Symbol(foo)"
s2.toString() // "Symbol(bar)"

Symbol函数的参数只是表示对当前 Symbol 值的描述,因此相同参数的Symbol函数的返回值是不相等的。

// 没有参数的情况
let s1 = Symbol();
let s2 = Symbol();

s1 === s2 // false

// 有参数的情况
let s1 = Symbol('foo');
let s2 = Symbol('foo');

s1 === s2 // false

ymbol 值也可以转为布尔值,但是不能转为数值。

let sym = Symbol();
Boolean(sym) // true
!sym  // false

if (sym) {
  // ...
}

Number(sym) // TypeError
sym + 2 // TypeError

Symbol.prototype.description

description 是一个只读属性,它会返回 Symbol 对象的可选描述的字符串。
console.log(Symbol('desc').description); // expected output: "desc" console.log(Symbol.iterator.description); // expected output: "Symbol.iterator" console.log(Symbol.for('foo').description); // expected output: "foo" console.log(Symbol('foo').description + 'bar'); // expected output: "foobar"

  

 



原文地址:https://www.cnblogs.com/blogZhao/p/12561702.html