美文网首页
JS symbol的学习

JS symbol的学习

作者: 何大必 | 来源:发表于2019-03-02 11:28 被阅读0次

详细介绍见MDN文档,本文是从文档中精简的

介绍

  • symbol是一种基本数据类型。
  • Symbol()函数会返回symbol类型的值,此值是唯一的。
  • 一个symbol值能作为对象属性的标识符(这是该数据类型仅有的目的)。
  • 不支持语法 new Symbol();通过Symbol([description])创建symbol值。围绕原始数据类型创建一个显式包装器对象从 ECMAScript 6 开始不再被支持。(现有的包装器对象如new Boolean,new String,new Number因为历史遗留原因仍可被创建)
var sym1 = Symbol('foo');
var sym2 = Symbol('foo');
sym1 == sym2 //false
sym2.toString();//"Symbol('foo')"

Symbols 与 for...in

Symbols在for...in迭代中不可枚举。Object.getOwnPropertyNames()不会返回symbol对象的属性,但是可以通过Object.getOwnPropertySymbols()得到他们。

 var obj = {
        a:'a',
        'b':'b',
   };
   obj[Symbol('c')] = 'c'
   for (var key in obj){
        console.log(key);//a b
    }
console.log(Object.getOwnPropertySymbols(obj));//[Symbol(c)]

Symbols 与JSON.stringify()

当使用 JSON.strIngify() 时以 symbol 值作为键的属性会被完全忽略:

JSON.stringify({[Symbol("foo")]: "foo"});                 
// '{}'

相关文章

  • JS symbol的学习

    详细介绍见MDN文档,本文是从文档中精简的 介绍 symbol是一种基本数据类型。 Symbol()函数会返回sy...

  • Symbol学习笔记

    一.Symbol是什么 typeof Symbol() === 'symbol',symbol是js中第7种基本类...

  • JS 数据类型

    JS 基本数据类型 boolean number string undefined null symbol JS ...

  • js 类型判断及 '==' 操作符

    js 类型判断 js 八种数据类型:Undefined, String, Symbol, Object, Numb...

  • 重学前端 第二章 js(上)

    js类型 Undefined、Null、Boolean、String、Number、Symbol、Object U...

  • Js数据类型

    Js数据类型 Js的七种数据类型:number string boolean symbol undefin...

  • 前端资料

    ES6新数据类型 Symbol . js变量提升函数提升 js this js 原型及原型链理解 new做了什么 ...

  • js之symbol

    Symbol,英译为符号。symbol是用于防止属性名冲突而产生的,比如向第三方对象中添加属性时。Symbol的值...

  • JS中的类型转换

    JS数据类型 原始类型:Number,String,Undefined,Null,Boolean,Symbol引用...

  • JS 里的数据类型转换

    一.JS中的数据类型 js中的数据类型可以分为七种:string 、number、boolean、symbol、 ...

网友评论

      本文标题:JS symbol的学习

      本文链接:https://www.haomeiwen.com/subject/jgxeuqtx.html