javascript - 解释 >= 和 <= 运算符在以下情况下的行为

标签 javascript comparison operators

function foo(){
console.log( function(){return 1} <= function(){return 1} );
}
foo();

上面的代码打印“true”。对于 <= 和 >= 都输出 true,对于所有其他运算符,它输出“false”。

这里发生了什么诡计?

最佳答案

因为它不是比较返回的1,而是比较函数。当您对函数运行运算符时,它会隐式调用 toString

至于 ==,Dmitri 解释得很好,toString 没有被调用,但它运行对象比较,这将是 false,因为有 2 个不同的对象永远不会一样。

这是ECMA spec关于关系运算符,解释了它如何与比较运算一起操作。对于对象,使用 instanceOf

关于javascript - 解释 >= 和 <= 运算符在以下情况下的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37144481/

相关文章:

javascript - JQuery 在对话框加载时运行 Javascript

sharepoint - Windows SharePoint Services 与 Microsoft Office SharePoint Server?

Java:排序比较方法违反了其一般契约

Java : Operators and Typecasting

c++ - C++中的点运算符评估顺序

javascript - 谷歌图表时间轴 - 无法读取 null 的属性长度

javascript - 如何在 Chrome 中关闭选项卡时切换到正在运行的程序

javascript - 数据绑定(bind)不适用于 View 模型

c++比较在缓冲区中的2个字符串之间不起作用

c++ - 运算符的初始化列表和 RHS