Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.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
x>;=JavaScript中的x模式_Javascript_D3.js_Coding Style_Nan - Fatal编程技术网

x>;=JavaScript中的x模式

x>;=JavaScript中的x模式,javascript,d3.js,coding-style,nan,Javascript,D3.js,Coding Style,Nan,在读取D3.js的源代码时,我看到了x>=x模式。如果是为了检测数字中的nan,为什么不干脆isNaN(x)或x==x : d3.min=函数(数组,f){ 变量i=-1,n=array.length,a,b; if(arguments.length==1){ 而(++i=b){ a=b; 打破 } 而(++ib)a=b; }否则{ 而(++i=b){ a=b; 打破 } 而(++ib)a=b; } 返回a; }; 好的,我看到x>=x对NaN和未定义的都给出false。(不同于isNaN(x)

在读取D3.js的源代码时,我看到了
x>=x
模式。如果是为了检测数字中的nan,为什么不干脆
isNaN(x)
x==x

:

d3.min=函数(数组,f){
变量i=-1,n=array.length,a,b;
if(arguments.length==1){
而(++i=b){
a=b;
打破
}
而(++ib)a=b;
}否则{
而(++i=b){
a=b;
打破
}
而(++ib)a=b;
}
返回a;
};

好的,我看到
x>=x
NaN
未定义的
都给出
false
。(不同于
isNaN(x)
x==x


编辑:虽然它是
x>=x
的用例之一,但在这种情况下(thx@Felix Kling指出这一点)
未定义的
已被检查

根据我的调查,
d3.min
应该适用于任何类型的可订购值,而不仅仅是数字
isNaN
只适用于数字

d3实际上在某个时候使用了
=
。介绍了
x==x
测试:

Math.min
Math.max
不同,为
d3.min
d3.max
返回负无穷大或正无穷大是没有意义的;D3函数根据任意顺序而不是数值返回最小值。相反,空数组或仅包含退化值的数组的最小值或最大值应始终未定义

x==x
更改为
x=x
):

除了不等于自身的
NaN
,您还可以拥有由于返回NaN的函数的定义值而不可排序的对象。例如:

var o = new Number(NaN);

这里,
o==o
是真的,但是看看引入逻辑的提交:,@FelixKling谢谢!实际上,我正在寻找一些带注释的源代码,但似乎没有:然而,
未定义的
案例已经包含了
!=空值
。+1巧合,
!(o)
var o = new Number(NaN);