为什么{}<功能(){}? [英] Why is {} < function(){}?

查看:85
本文介绍了为什么{}<功能(){}?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我在用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.

这篇关于为什么{}&lt;功能(){}?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆