// Number(undefined) // NaN
// Number(null) // 0
// Number({}) // NaN
// Number(function() {}) // NaN
// Number([]) // 0
// Number(['']) // 0
// Number(['2']) // 2
// Number([2,3]) // NaN
String(undefined) // 'undefined'
String(null) // 'null'
String({}) // [object Object]
String(function() {}) // function () {}
console.log(typeof String(true)) // true
String([1, [3]]); // 1,3 无论套多少括号,都会去掉
Boolean('') // fasle
Boolean(' ') // true
// Number 的内部实现
// Number(obj)在调用的时候,会先调用valueOf,然后在调用toString
// 如果valueOf返回的是原始值(数字,字符串,布尔),则直接调用Number。
// 如果返回的是对象之类的,则调用toString方法,
// +旁边有一个是字符串,转换成字符串
// +旁边有一个对象类型的,转换成字符串
console