Javascript 解释>;=和<;=下列情况下的操作员 函数foo(){ log(function(){return 1}
因为它不是比较返回的Javascript 解释>;=和<;=下列情况下的操作员 函数foo(){ log(function(){return 1},javascript,comparison,operators,Javascript,Comparison,Operators,因为它不是比较返回的1,而是比较函数。在函数上运行运算符时,它隐式调用toString 至于=,Dmitri解释得很好,没有调用toString,但它运行一个对象比较,这将是错误的,因为两个不同的对象从来都不相同 这里是关于关系运算符的,它解释了它如何使用比较操作。对于对象,使用了instanceOf。因为它总是比较1=1,所以它总是相同的。但是如果你比较1>1,它就是false。函数(){return 1}这似乎是有道理的,但对JS来说似乎很奇怪。你能包括描述这一点的规范部分吗?Arg,我也发
1
,而是比较函数
。在函数上运行运算符时,它隐式调用toString
至于=
,Dmitri解释得很好,没有调用toString
,但它运行一个对象比较,这将是错误的,因为两个不同的对象从来都不相同
这里是关于关系运算符的,它解释了它如何使用比较操作。对于对象,使用了instanceOf。因为它总是比较1=1,所以它总是相同的。但是如果你比较1>1,它就是false。
函数(){return 1}这似乎是有道理的,但对JS来说似乎很奇怪。你能包括描述这一点的规范部分吗?Arg,我也发现了。在我的回答中引用你的部分。+1抱歉,@harsh你的问题不清楚……但我读了下面的评论。这仍然是错误的,问题与函数返回的内容无关(本质上)因为函数没有被执行。比较是在functions@Patty如果您在本例中描述:(function(){return 1})(@Sterling,我认为不会调用该函数的toString()运算符,因为以下返回值为false:function(){return 1}==function(){return 1}
@Dmitri所以javascript在>=,是的,=
和==
的计算不同于=
,
,
function foo(){
console.log( function(){return 1} <= function(){return 1} );
}
foo();