我试图理解比较函数的奥秘:
let a=function(){}
let b=function(){}
console.log(a==b) //false
console.log(a===b) //false
console.log(a<b) //false
console.log(a>b) //false
console.log(a<=b) //true !?!
console.log(a>=b) //true !?!
console.log( (+a) < (+b) ) //false
console.log( (+a) > (+b) ) //false
console.log( (+a) <= (+b) ) //false
console.log( (+a) >= (+b) ) //falseRun Code Online (Sandbox Code Playgroud)
在 ECMAscript 中,<= 操作符是这样描述的:
RelationalExpression:RelationalExpression<=ShiftExpression
- 让 lref 是评估 RelationalExpression 的结果。
- 让 lval ? 获取值(lref)。
- 让 rref 是评估 ShiftExpression 的结果。
- 让 rval ? 获取值(参考)。
- 令 r 是执行抽象关系比较 rval < lval 且 LeftFirst 等于 false 的结果。
- ReturnIfAbrupt(r)。 …
javascript ×1