isNaN()
isNaN() 先执行了一个Number方法,才会去执行该方法。
isNaN([]) //打印出falseNumber([]) //打印出0isNaN({}) //打印出trueNumber({}) //打印出NaN//根据js规范,如果参数是对象,会首先把对象转化为原始类型的数据;即调用valueOf方法。new Date().valueOf() //1571206439491new Object().valueOf() //{}new Function().valueOf() //ƒ anonymous() {}new Array().valueOf() //[]//数组的元素被转化为字符串,这些字符串由逗号分割,连接在一起,类似于join()。Number([1,2]) //NaNNumber([1]) //1
比较运算符
NaN == NaN //打印出falseundefined == 0 //打印出falsenull == 0 //打印出falseundefined == null //打印出true1. 0 、""、 []、 false两两之间是相等的关系,当然非0的其他数字和true相等2. null 和0 、""、 []、 false之间并不相等3. undefined 和0 、""、 []、 false之间并不相等4. null 和undefined 是相等的
逻辑运算符
//逻辑与 &&var a = 1 && 2 // 打印出a-->2var a = 1 && 0 // 打印出a-->0var a = 0 && 1 // 打印出a-->0var a = 0 && false // 打印出a-->0//逻辑或 ||var a = 1 || 3; // 打印出a-->1var a = 1 || false; // 打印出a-->1
- 走到哪就打印第几个表达式的值。
