1、判断是否是对象(null 也是一个对象,数组和函数返回false,对象返回true)
(bar !== null) && (bar.constructor === 'object')
2、判断数组
Array.isArray(bar);
3、NAN表示不是数字的值,类型是number类型
NAN === NAN; //false
//判断是否是数字
Number.isNaN();
4、js中数字全部用浮点精度处理,整数只在概念上存在,即数值始终作为浮点值存储(浮点数计算的bug)
console.log(0.1+0.2); // 0.3000000000000004
console.log(0.1+0.2 == 0.3) //false
var r = (0.3 - (0.1 + 0.2)).toFixed(2);
function addNum(num1, num2) {
var sq1, sq2, m;
try {
sq1 = num1.toString().split(".")[1].length;
} catch (e) {
sq1 = 0;
}
try {
sq2 = num2.toString().split(".")[1].length;
} catch (e) {
sq2 = 0;
}
m = Math.pow(10, Math.max(sq1, sq2));
return (num1 * m + num2 * m) / m;
}