[TOC]
>[success] # Symbol內建對象類的函數及屬性
<br/>
symbol 是一種**基本數據類型**。**Symbol()** 函數會返回 **symbol類型** 的值,該類型具有 **靜態屬性** 和 **靜態方法** 。它的靜態屬性會暴露幾個內建的成員對象;它的靜態方法會暴露全局的symbol注冊,且 **類似于內建對象類,但作為構造函數來說它并不完整,因為它不支持語法:"new Symbol()"**。
>[success] ## Symbol 屬性
| 屬性 | 作用 |
| --- | --- |
| [Symbol.hasInstance](http://www.hmoore.net/wangjiachong/javascript/1590842) | 可以像`instanceof`一樣判斷數據類型,或可`重寫`所有`內建函數` 的`Symbol.hasInstance`屬性|
| [Symbol.isConcatSpreadable](http://www.hmoore.net/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類的理解和使用