Boolean轉換原則:非假即真
- 6種虛值
- 原始值轉換為原始值
- 對象轉換為原始值
Date()和new Date()
- new Date可以不寫括號(new方式返回的一定是對象),返回Date對象
- Date()返回函數執行,返回時間字符串
引用值轉原始值
- 先找valueOf方法(一般返回的都是本身,所以大多情況看的是toString返回的是什么)
- 再找toString()
- es6對象方法的簡化寫法
當toString返回的不是原始值時便報錯(一般不會,除非刻意重寫toString方法)
Object.prototype.toString.call(xxx)的返回值
arguments、document等構造函數不是ecmascript提供的
- 這2種方法全等,一種是通過訪問原型上的方法,一種是用實例繼承了原型上的方法
一個現象:當Array.prototype.toString.call(xxx)無法轉化時,會調用Object.prototype.toString.call(xxx)
對Boolean()、Number()不能轉的就報錯