/**
* Symbol
*/ /**
* 1 什么是 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); // Symbol 函数前不能使用 new 否则会报错,原因在于 Symbol 是一个原始类型的值,不是对象。 // let s3 = new Symbol(); // console.log(s1);
// console.log(s2); // Symbol 函数接收一个字符串作为参数,表示对Symbol的描述,主要是为了在控制台显示,或者转为字符串的时候,比较容易区分 // let s3 = Symbol('miaov');
// let s4 = Symbol('leo');
//
// console.log(s3, s4);
//
//
// console.log(Symbol('momo') === Symbol('momo')); /**
* 2 Symbol 数据类型的转换
*/ // console.log(String(Symbol('miaov'))); // Symbol(miaov)
// console.log(Symbol('leo').toString()); // Symbol(leo)
//
// console.log(!!Symbol()); // true
// console.log(Number(Symbol())); // console.log(Symbol('momo') + 'pangzi');
// console.log(Symbol('momo') * 100); 不能做任何运算。 /**
* 3 作为对象的属性名
*/ // let yyy = Symbol('yyy');
//
// const obj = {};
//
// obj[yyy] = 'hello';
//
// console.log(obj);
//
// console.log(obj[yyy]); // let ss = Symbol('ss');
//
// const data = {
// [ss]: 'miaov'
// };
//
// console.log(data);
//
// console.log(data[ss]); const data = {
[Symbol()]: 123,
a: 1,
b: 2
}; console.log(data);
console.log(data['Symbol()']); // 不能被for...in循环遍,历虽然不能被遍历,但是也不是私有的属性,可以通过Object.getOwnPropertySymbols方法获得一个对象的所有的Symbol属性 for(let i in data){
console.log(i);
} console.log(Object.getOwnPropertySymbols(data)); // [Symbol()] console.log(data[Object.getOwnPropertySymbols(data)[0]]);

ES6__Symbol的更多相关文章

随机推荐

  1. CF779B(round 402 div.2 B) Weird Rounding

    题意: Polycarp is crazy about round numbers. He especially likes the numbers divisible by 10k. In the ...

  2. VS2013编译libjpeg库

    第一步:找到刚刚解压出来的“jpeg-9a”文件夹下面的“makefile.vc”文件,用记事本或Notepad++等编辑工具打开,然后找到里面的“!include <win32.mak> ...

  3. 小程序setData,视图层没有跟新

    如果你完全符合微信介绍的setData使用说明的情况下,发现视图层没有更新,你可以看看我的这种情况. 使用setData的时候,修改的是data中一个对象的值,然后这个对象里面第一层不能含有 numb ...

  4. web前端工程师入门须知

    本文是写给那些想要入门web前端工程的初学者,高手请路过,也欢迎高手们拍砖. 先说下web前端工程师的价值,目前web产品交互越来越复杂,用户使用体验和网站前端性能优化这些都得靠web前端工程师去做w ...

  5. STM32&AT指令NBIOT模组

    #include "nbiot.h" #include "string.h" #include "stdlib.h" #include &q ...

  6. Sql Server RowNumber和表变量分页性能优化小计

    直接让代码了,对比看看就了解了 当然,这种情况比较适合提取字段较多的情况,要酌情而定 性能较差的: WITH #temp AS                       (              ...

  7. 让idea调试不进入class文件中去

  8. 牛客OI赛制测试赛2(0906)

    牛客OI赛制测试赛2(0906) A :无序组数 题目描述 给出一个二元组(A,B) 求出无序二元组(a,b) 使得(a|A,b|B)的组数 无序意思就是(a,b)和(b,a) 算一组. 输入描述: ...

  9. Oracle数据库日常SQL的使用

    DDL 语句(数据定义语言Create.Alter. Drop.Truncate) 1.建表:create table 表名(): 2.复制表结构及其数据:create table 新表名 as se ...

  10. 移动web touch事件

    参考:http://www.cnblogs.com/dojo-lzz/p/5452575.html wap中的原生touch 事件,touchstart.touchmove.touchend.touc ...