es6 Symbol
时间:2022-04-23
本文章向大家介绍es6 Symbol,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1.Symbol 值通过Symbol 函数生成,凡是属性名属于Symbol 类型,就是
独一无二的,可以保证不会与其他属性名冲突。
// 没有参数的时候
let s1 = Symbol();
let s2 = Symbol();
s1 === s2; // false
// 有参数的情况
let s1 = Symbol('foo');
let s2 = Symbol('foo');
s1 === s2 // false
2.作为属性名的 Symbol
由于每个Symbol 值都是不相等的,用于对象的属性名,就能保证不会重复出现。
let mySymbol = Symbol();
// 第一种写法
let a = {};
a[mySymbol] = 'Hello';
// 第二种写法
let a = {
[mySymbol]: 'Hello'
}
// 第三种写法、
let a = {};
Object.definePropert(a,mySymbol,{value: 'Hello!'})
a[mySymbol] // "Hello!"
3.属性名的遍历
Symbol 作为属性名,该属性不会出现在for...in,for...of 循环中,也不会出现在Object.keys(),
Object.getOwnPropertyNames(),JSON.stringify() 返回。
只有Object.getOwnPropertySymbols 方法可以获取指定对象的所有Symbol 属性名。
const obj = {};
let a = Symbol('a');
let b = Symbol('b');
obj[a] = 'Hello';
obj[b] = 'World';
const objectSymbols = Object.getOwnPropertySymbols(obj)
console.log(objectSymbols) // [Symbol(a),Symbol(b)]
4.Es6 提供内置 Symbol.
Symbol.hasInstance Symbol.isConcatSpreadable Symbol.species
Symbol.match Symbol.replace Symbol..split Symbol..iterator
Symbol.toPrimitive Symbol.toStringTag
- ruby学习笔记(1)--初识语法
- 无法启用数据库中的 Service Broker,因为已存在启用的具有相同 ID 的 Service Broker。
- Centos7.2下针对LDAP的完整部署记录
- .NET Core 已经实现了PHP JIT,现在PHP是.NET上的一门开发语言
- 温故而知新:设计模式之适配器模式(Adapter)
- .NET Core RC2/RTM 明确了时间表
- kvm虚拟化关闭虚拟网卡virbr0的方法
- NET开发学习项目资源(2)
- Linux下selinux简单梳理
- 一段oracle中的“复杂”分组统计sql
- 通过Chocolatey软件包管理器安装.NET Core
- rsync同步时,删除目标目录比源目录多余文件的方法(--delete)
- 近期一枚“大文娱”dawenyu.com域名以小六位价格易主
- 分布式监控系统Zabbix-3.0.3-完整安装记录(0)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- ThinkPHP中获取指定日期后工作日的具体日期方法
- php curl操作API接口类完整示例
- PHP使用PDO创建MySQL数据库、表及插入多条数据操作示例
- Python叠加矩形框图层2种方法及效果
- PHP常量define和const的区别详解
- 解决运行出现'dict' object has no attribute 'has_key'问题
- tensorflow之读取jpg图像长和宽实例
- Python数据可视化实现多种图例代码详解
- Python使用tkinter实现摇骰子小游戏功能的代码
- pandas to_excel 添加颜色操作
- Python自带的IDE在哪里
- php+Ajax无刷新验证用户名操作实例详解
- PHP经典设计模式之依赖注入定义与用法详解
- 浅谈python出错时traceback的解读
- PHP判断是否是微信打开还是浏览器打开的方法