Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 解释>;=和<;=下列情况下的操作员 函数foo(){ log(function(){return 1}_Javascript_Comparison_Operators - Fatal编程技术网

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();