isNaN()

isNaN() 先执行了一个Number方法,才会去执行该方法。

  1. isNaN([]) //打印出false
  2. Number([]) //打印出0
  3. isNaN({}) //打印出true
  4. Number({}) //打印出NaN
  5. //根据js规范,如果参数是对象,会首先把对象转化为原始类型的数据;即调用valueOf方法。
  6. new Date().valueOf() //1571206439491
  7. new Object().valueOf() //{}
  8. new Function().valueOf() //ƒ anonymous() {}
  9. new Array().valueOf() //[]
  10. //数组的元素被转化为字符串,这些字符串由逗号分割,连接在一起,类似于join()。
  11. Number([1,2]) //NaN
  12. Number([1]) //1

比较运算符

  1. NaN == NaN //打印出false
  2. undefined == 0 //打印出false
  3. null == 0 //打印出false
  4. undefined == null //打印出true
  5. 1. 0 "" []、 false两两之间是相等的关系,当然非0的其他数字和true相等
  6. 2. null 0 "" []、 false之间并不相等
  7. 3. undefined 0 "" []、 false之间并不相等
  8. 4. null undefined 是相等的

逻辑运算符

  1. //逻辑与 &&
  2. var a = 1 && 2 // 打印出a-->2
  3. var a = 1 && 0 // 打印出a-->0
  4. var a = 0 && 1 // 打印出a-->0
  5. var a = 0 && false // 打印出a-->0
  6. //逻辑或 ||
  7. var a = 1 || 3; // 打印出a-->1
  8. var a = 1 || false; // 打印出a-->1
  • 走到哪就打印第几个表达式的值。