1. 调用对象的valueOf方法,并将值转为Number, 是数值则为false,否则为true 2. 上一步判断为true时,调用对象的toString方法,并将值转为Number,是数值则为false,否则为true
- 验证第一步:
function TestNumber(){}
TestNumber.prototype.valueOf = ()=> ''
let a = new TestNumber()
isNaN(a) // false
TestNumber.prototype.valueOf = ()=> 'xxx'
let b = new TestNumber()
isNaN(b) // true
- 第二步同理,略。。