ES6——Symbol数据类型

什么是 Symbol ?
  Symbol 表示独一无二的值,他是js中的 第七种数据类型。

  基本的数据类型:null, undefined number boolean string symbol
  引用数据类型:Object

  let s1=Symbol();
  let s2= Symbol();
  console.log(typeof s1); //symbol

  console.log(s1===s2) //false;

Symbol 函数不能使用 new 否则会把错,因为 Symbol 是一个原始类型的值,不是对象。

Symbol 函数接收一个字符串作为参数,表示对 Symbol 的描述,主要是为了在控制台显示或者转为 字符串的时候,比较容易区分。

  let s3=Symbol ("miaov");
  let s4=Symbol ("leo");
  console.log(s3,s4); //输出 Symbol (miaov) Symbol (leo);

2、Symbol 数据类型的转换。

  console.log(String(Symbol ("miaov")));
  console.log(Symbol ("leo").toString);
  //转换 bool值
  console.log(!! Symbol()); //true
  Symbol 不能做任何运算。

3、作为对象的属性名。

  let ss=Symbol("ss");
  const data={
    [ss]:"miaov"
  };
  console.log(data[ss]); //打印 miaov

  const data={
    [Symbol()]:123,
    a:1,
    b:2
  }
  //找不到 [Symbol()]:123,
  for (let i in data){
    console.log(i);
  }

以上。

原文地址:https://www.cnblogs.com/zyhbook/p/9425972.html

时间: 2024-09-30 16:55:58

ES6——Symbol数据类型的相关文章

es6 新增数据类型Symbol

es6在string number boolean null undefined object之外又新增了一种Symbol类型. Symbol意思是符号,有一个特性—每次创建一个Symbol值都是不一样的. // var a=new Symbol(); //注意不是用new创建 var a=Symbol(); var b=Symbol(); console.log(a===b); //false 用处:赋值对象的属性被修改. 具体:把Symbol作为key,下游的人就没法覆盖key了. //fi

ES6-----学习系列九(Symbol数据类型)

Symbol是es6新的数据类型. Symbol所声明的值是唯一的,独一无二的.永远不可能相等.Symbol.for(key) 先检查是否声明了key值  如果未声明就相当于调用Symbol  如果已经声明了 就相当于获取这个Symbol { // 声明 let a1=Symbol(); let a2=Symbol(); console.log(a1===a2);//false let a3=Symbol.for('a3'); let a4=Symbol.for('a3'); console.l

ES6-07:Symbol数据类型

ES5中规定JavaScript有6种数据类型:Undefined.Null.String.Boolean.Number.Object:ES6新增加一种数据类型Symbol. 1.symbol定义 原始数据类型:不是对象,不能使用new命令创建,不能添加属性: 表示独一无二的值: Symbol()===Symbol();//false Symbol('foo')===Symbol('foo');//false Symbol.for('bar')===Symbol('bar');//true sy

JS中的Symbol数据类型

最初JS的6种数据类型: null,undefined,boolean,number,string,object 注意:实际上,array和function都是属于object的子类 ES6中,新增了一种数据类型Symbol,现在共7种数据类型 判断: typeof Symbol() === 'symbol' 特点: Symbol('key') !== Symbol('key') //true Symbol类型的对象永远不相等,即便创建它们的时候传入了相同的值,因此,可借助此特性解决属性名的冲突

ES6 Symbol类型 附带:Proxy和Set

七种数据类型 ·Symbol ·undefined ·null ·Boolean ·String ·Number ·Object let a = Symbol('this is a symbol'); let b = Symbol(); console.log(a === b); //false Symbol的用途:在{ }作用域内可以临时重写一个变量 // //file1.js let name = Symbol(); { var person = { }; person[name] = 'F

ES6新数据类型map与set

一.map,简单的键值对映射,具有很快的查找速度 1. 初始化map,map的键名可以使用其他数据类型,对象的属性名只能使用字符串或symbol 使用二维数组 var m = new Map([['name', 'LQW'], ['age', 23], [123, '我的键名是数字类型']]);m.get('name'); // LQW 初始化一个空Map var m = new Map();m.set('name', 'LQW');m.set('age', 23);m.set(123, '我的

Es6 Symbol.iterator

Symbol.iterator 为每一个对象定义了默认的迭代器.该迭代器可以被 for...of 循环结构使用. --描述 当需要迭代一个对象的时候(比如在 for...of 循环的开始时),它的 @@iterator 方法就会被调用一次(0 个参数),同时返回的迭代器将被用来获取被迭代出来的值. 一些内建类型拥有默认的迭代器行为,其他类型(如 Object )则没有.下表中的内建类型拥有默认的@@iterator方法: Array.prototype[@@iterator]() TypedAr

es6 map数据类型,要比set还很多

首先它支持多数据存储,具有增删查功能 set()设置 get()获取; has()查找; delete('obj')删除指定:clear()全部删除 size长度 let json={ name:"websong",skili:"web" }; //设置-增加 var msp=new Map(); msp.set(json,'iam'); console.info(msp) msp.set('niubi','111') console.info(msp) //取值g

JavaScript数据类型 - Symbol

ES5:对象的属性名只能是字符串,当给对象添加新属性时,很容易造成属性名冲突,从而覆盖了原有的属性. ES6:所以ES6中引入了symbol数据类型,他表示独一无二的值,避免了属性名的冲突,此时对象的属性名可由字符串类型或者symbol类型来定义. symbol是一种基本数据类型,通过Symbol()函数来返回symbol类型的值,具有唯一性. 语法:Symbol([description]) 参数:description可选,字符串类型,表示对symbol的描述,调试时更容易区分. 一.作为普