美文网首页
ES6中的新特性 Symbol

ES6中的新特性 Symbol

作者: richardch | 来源:发表于2017-03-13 23:59 被阅读0次

一开始接触Symbol的时候,以为这是在Javascript 中提供了一种Dictionary 的实现方式。

标准文档解释说Symbol 是继 6种基本数据类型:Undefined、Null、Boolean、String、Number、Object 后的第7种 基本类型, Symbol是一个不可变的数据类型,用来产生唯一的标识,但是却无法直接访问这个标识.

Symbol的最基础用法

var mySymbol = Symbol();

也可以为Symbol 创建描述

var mySymbol = Symbol("My Symbol");

Symbol的用途可以作为对象的属性出现, 并且由于Symbol的唯一性,不用担心属性会发生冲突

var o = {
       val: 10,
      [ Symbol("random") ]: "I'm a symbol",
  };    

但是必须提醒的是,Symbol在对象中会以特殊的方式存储, 所以下面的方式不可以获取到symbol属性

console.log(Object.getOwnPropertyNames(o)); // val

必须以这种方式

Object.getOwnPropertySymbols(o);

ES6有一个Symbol.iterator,能够指定对象的默认iterator:

var arr = [11,12,13];
var itr = arr[Symbol.iterator]();    
itr.next(); // { value: 11, done: false }  
itr.next(); // { value: 12, done: false }  
itr.next(); // { value: 13, done: false }   
itr.next(); // { value: undefined, done: true }

相关文章

  • ES6中的新特性 Symbol

    一开始接触Symbol的时候,以为这是在Javascript 中提供了一种Dictionary 的实现方式。 标准...

  • 快速了解Es6中的Symbol

    Symbol是Es6中的一个新特性,它是一个基本数据类型。 javascript从Es6起,基本数据类型变为6种 ...

  • [ES6-新一代的javascript]

    8个ES6中的新特性 compat-table ES6新特性概览

  • ES6 中的 Symbol

    JavaScript 之 Symbol Symbol是什么 Symbol是ES6中新引入的一种基本数据类型。Sym...

  • js的第七种数据类型Symbol

    Symbol类型是ES6中新加入的一种原始类型。 每个从Symbol()返回的symbol值都是唯一的。一个sym...

  • ES6补充以及Node事件轮询

    Symbol es6中新增了symbol类型,symbol类型的值是通过symbol函数生成的,相同symbol函...

  • ES6 Symbol探究

    Symbol 是什么 Symbol ===> 象征;符号;标志在 ES6 中是一种新的数据类型,它的目的是为了给数...

  • JavaSctipt基础归纳,以及隐式转换的规则

    原始类型: "symbol" 是ES6,新扩展的原始类型;Symbol,表示独一无二的值。Symbol 值通过Sy...

  • ES6新特性Symbol,Set,Map

    新数据类型 Symbol 声明方式 Symbol 不是对象,可以理解成不能重复的独立字符串,括号内对象会转化为字符...

  • Symbol

    Symbol ES6引入了一种新的原始数据类型Symbol,表示独一无二的值.Symbol值通过Symbol函数生...

网友评论

      本文标题:ES6中的新特性 Symbol

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