[TOC]
>[success] # Symbol内建对象类的函数及属性
<br/>
symbol 是一种**基本数据类型**。**Symbol()** 函数会返回 **symbol类型** 的值,该类型具有 **静态属性** 和 **静态方法** 。它的静态属性会暴露几个内建的成员对象;它的静态方法会暴露全局的symbol注册,且 **类似于内建对象类,但作为构造函数来说它并不完整,因为它不支持语法:"new Symbol()"**。
>[success] ## Symbol 属性
| 属性 | 作用 |
| --- | --- |
| [Symbol.hasInstance](https://www.kancloud.cn/wangjiachong/javascript/1590842) | 可以像`instanceof`一样判断数据类型,或可`重写`所有`内建函数` 的`Symbol.hasInstance`属性|
| [Symbol.isConcatSpreadable](https://www.kancloud.cn/wangjiachong/javascript/1590842) | `Symbol.isConcatSpreadable`用来`配置`某`数组`作为`concat()`方法的参数时,是否`展开其数组`元素。|
| [Symbol.toPrimitive](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Symbol/toPrimitive) | 当一个对象转换为对应的`原始值`(字符串、布尔、数字等等)时,会调用此函数。 |
|[Symbol.toStringTag](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Symbol/toStringTag)| 这个属性可以用来定制`[object Object]`或`[object Array]`中`object`后面的那个`字符串`。 |
|[Symbol.unscopables](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Symbol/unscopables)| `Symbol.unscopables`指用于指定对象值,指定后`with`就循环不到指定的那个值。|
<br/>
>[success] ## Symbol的方法
| 构造方法 | 作用 |
| --- | --- |
| [Symbol.match](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Symbol/match) | 此函数接受一个`字符串`参数,并返回一个包含匹配结果的`数组`;若匹配 失败,则返回`null`|
|[Symbol.replace]() |此函数接受一个`字符串`参数与一个替换用的`字符串`,并返回替换后的结果`字符串`|
| [Symbol.search](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Symbol/search) | 此函数接受一个`字符串`参数,并返回匹配结果的数值`索引`;若匹配失 败,则返回`-1`|
| [Symbol.split](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Symbol/split) | 此函数接受一个`字符串`参数,并返回一个用匹配值分割而成的`字符串数组`|
- Javascript基础篇
- Array数组
- 数组插入值
- filter()
- forEach()
- push()
- pop()
- unshift()
- shift()
- valueOf()
- 面向对象思想
- Javascript 面向对象编程(一):封装
- Javascript面向对象编程(二):构造函数的继承
- Javascript面向对象编程(三):非构造函数的继承
- 解构
- 数组的解构赋值
- 对象的解构赋值
- 函数参数解构
- 字符串的解构赋值
- 数值和布尔值的解构赋值
- 圆括号问题
- 字符串.
- split()
- charAt()
- charCodeAt()
- concat()
- indexOf()
- lastIndexOf()
- match()
- replace()
- includes()
- 初识递归
- 渲染ul-li树形结构
- 异步函数解决方案
- 1. callback回调函数
- 2. ES6 - Promise
- JavaScript高级程序设计(书)
- 在html中使用JavaScript
- script标签的位置
- 延迟脚本
- 异步脚本
- <noscript>元素
- 基本概念
- 严格模式
- 变量详解
- 数据类型
- typeof操作符
- undefined类型
- Null类型
- Boolean类型
- Number类型
- 深入了解ES6(书)
- var 、let 、 const
- 字符串与正则表达式
- 字符串
- 正则表达式
- 函数
- 函数形参默认值
- 使用不具名参数
- 函数构造器的增强能力
- 扩展运算符
- name属性
- 明确函数的多重用途
- 块级函数
- 箭头函数
- 尾调用优化
- 扩展的对象功能
- 对象类别
- 对象字面量语法的扩展
- ES6对象新增方法
- 重复的对象属性
- 自有属性的枚举顺序
- 更强大的原型
- 解构:更方便的数据访问
- 为什么要用解构?
- 对象解构
- 数组解构
- 混合解构
- 参数解构
- Symbol与Symbol属性
- 创建Symbol
- Symbol的使用方法
- Symbol全局私有属性
- Symbol与类型强制转换
- Symbol属性检索
- Symbol的一些构造方法
- Set集合与Map集合
- Set集合
- Weak Set集合(弱引用Set集合)
- Map集合
- JS标准内置对象
- Object 构造函数及属性
- Object 构造方法
- Symbol 内建对象类的函数及属性
- Set 构造函数及属性
- Weak Set 构造函数及属性
- JS杂项
- 类数组对象
- Class类的理解和使用