为什么{}<功能(){}? [英] Why is {} < function(){}?
本文介绍了为什么{}<功能(){}?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
当我在用JavaScript处理真值表时,我注意到以下内容为true:
While I was messing around with truth tables in JavaScript, I noticed that the following evaluates to true:
var a, b, c;
a = {};
b = function(){};
c = a < b;
console.log(c);
为什么?
我只在Firefox中进行了测试,我敢肯定我可以在ECMAScript 2.6.2规范中挖掘细节,但是TBH我感到很懒.
推荐答案
JavaScript类型强制实质上进行了比较
JavaScript type coercion makes the comparison essentially
String({}) < String(function(){})
所以本质上你只是在做
"[object Object]" < "function (){}"
这是字典字符串的比较.
which is a lexicographic string comparison.
这篇关于为什么{}<功能(){}?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文