看看下面的题知道几个:
Infinity * 0;
Infinity / Infinity;
0 / 0;
Infinity % 5;
Infinity - Infinity;
-0 - (-0);
+[x];
+[];
+[1,2];
false == 0;
true == 1;
| | | | | | | |
答案:
// NaN
Infinity * 0;
// NaN
Infinity / Infinity;
// NaN
0 / 0;
// NaN
Infinity % 5;
// NaN
Infinity - Infinity;
// 这几个我理解是值有歧义的都返回 NaN, 比如 Infinity * 0 , 那么是 Infinity 呢, 还是 0 呢
// 再比如 Infinity - Infinity 因为 Infinity + 1 == Infinity, Infinity + 2 == Infinity ... 所以这个可以等于任何数, 有歧义就给个 NaN
// +0
-0 - (-0);
// +x
+[x];
// 0
+[];
// NaN
+[1,2];
// 这几个都是先调用`Array.property.valueOf`, 返回数组本身,不能使用, 那么又调用`Array.property.toString`, 那么
// +[x] => +x
// +[] => +'' => 0
// +[1,2] => +'1,2' => NaN
// true
false == 0;
// true
true == 1;