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()不能转的就报错