0
比較未定義/空/南帶着數在ActionScript 1和2,如果你比較undefined
,null
或NaN
使用>=
或<=
運營商的任意數,結果總是true
。測試代碼:在ActionScript
var x, n, range = 1000;
for (var i = 0; i < 3; ++i) {
switch (i) {
case 0:
x = undefined;
break;
case 1:
x = null;
break;
case 2:
x = NaN;
break;
}
n = range*Math.random();
trace(x + ' >= ' + n + ': ' + (x >= n));
n = range*Math.random();
trace(x + ' <= ' + n + ': ' + (x <= n));
}
此外,isNaN(null)
回報true
。
這些與JavaScript相反,可能不符合ECMA標準。
難道這些錯誤或意向?
謝謝!
isNaN(空)應返回true,因爲它不是一個數量......沒有注意到這些極端情況,但作爲那些是「非法」或更好,因爲操作的不確定的結果解釋,我比較肯定是故意的。你不應該做一些像NaN那樣的事情,所以你必須使用isNaN()來測試這個......我猜測運營商不能在AS中拋出異常,所以他們不得不訴諸於我,但是我「從專家米遠上的ActionScript內部... – Neoraptor 2011-12-15 10:00:02
如果是故意的,爲什麼用``<` or `>操作時,結果是'FALSE`? – ExpExc 2011-12-15 10:19:28