我有如下形式的一些代碼:的JSLint給怪「怪異的關係」的消息
function test(a,b,x) {
return (a > x) !== (b > x);
}
這似乎是給我一個合理的一段代碼,但JSLint的一個「奇怪的關係」的消息抱怨。
因此,首先,有誰知道爲什麼JSLint抱怨?其次,有沒有辦法讓某種程度上的「奇怪的關係」錯誤得到遏制?
我有如下形式的一些代碼:的JSLint給怪「怪異的關係」的消息
function test(a,b,x) {
return (a > x) !== (b > x);
}
這似乎是給我一個合理的一段代碼,但JSLint的一個「奇怪的關係」的消息抱怨。
因此,首先,有誰知道爲什麼JSLint抱怨?其次,有沒有辦法讓某種程度上的「奇怪的關係」錯誤得到遏制?
某些原因JSLInt看到左側和右側相同。
方式,以避免這將是它分解成變量
function test(a, b, x) {
"use strict";
var t1 = a > x,
t2 = b > x;
return t1 !== t2;
}
嗯,這件事情我沒有考慮......當然這不是預期的行爲?不過,我會使用你的修復程序。 – Oystein 2014-09-24 13:00:22
它是爲了防止像'(「foo」===「foo」)'這樣的代碼,但是由於某種原因,當(X> Y)包含在任何一邊時,它就會嚇倒。所以'(a!==(x> y))'也觸發它。自從我過去遇到它時,我只知道解決它的辦法,我從來沒有搜索過代碼來查看檢查實際上在做什麼。 – epascarello 2014-09-24 13:02:45
它似乎是故意的,所以如果任何一方本身就是一種關係,那麼它就被認爲是「怪異的」:https://github.com/douglascrockford/JSLint/blob/394bf/jslint.js#L2133 – cmbuckley 2014-09-24 13:33:14
http://jslinterrors.com/weird-relation – epascarello 2014-09-24 12:46:25