[TOC]
>[success] # Symbol與類型強制轉換
~~~
'類型轉換'是'JS'語言重要的一部分,能夠非常靈活地將一種'數據類型'轉換為另一種。然而'Symbol類型'在進行
轉換時非常不靈活,因為其他類型缺乏與'Symbol'值的合理等價,尤其是'Symbol無法被轉換為字符串值或數值'。
~~~
<br/>
>[success] ## String()轉換
~~~
雖然說上面說不可以轉換,其實只能轉換成'Symbol(uid)'這種形式,想取到'描述內容'需要手動截取'描述內容'
let uid = Symbol.for("uid"), // 創建全局私有屬性
test?=?Symbol('呵呵噠'), // 創建局部私有屬性
desc = String(uid), // 轉換成字符串
testString?=?String(test) // 轉換成字符串
console.log(desc) // "Symbol(uid)"
console.log(testString) // "Symbol(呵呵噠)"
~~~
<br/>
>[warning] ## 強制類型轉換
~~~
將'uid'與'空字符串'相連接,會首先要求把'uid'轉換為一個'字符串',而這會引發錯誤,從而阻止了轉換行為。
let uid = Symbol.for("uid"),
desc = uid + ""; // 引發錯誤!
~~~
<br/>
>[warning] ## Symbol轉換成數字
~~~
相似地,你不能將'Symbol'轉換為數值,對'Symbol'使用所有數學運算符都會引發錯誤,例如:
let uid = Symbol.for("uid"),
sum = uid / 1; // 引發錯誤!
此例試圖把'Symbol'除以 1 ,同樣引發了錯誤。無論對'Symbol'使用哪種數學運算符都會'導致錯誤',但使用
邏輯運算符則不會,因為'Symbol'在'邏輯運算中會被認為等價于true'(就像 JS 中其他的非空值那樣)。
~~~
- 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類的理解和使用