Boolean 和 Number 类型
Boolean
将一个值转为 Boolean 类型的函数 Boolean()
console.log(Boolean(undefined)); // false
console.log(Boolean(0)); // false
console.log(Boolean('')); // false
console.log(Boolean(null)); // false
// 注意下面
console.log(Boolean({})); // true
console.log(Boolean([])); // true
Number
浮点数值计算有误差
var a = 0.1, b = 0.2;
console.log(a + b) // 0.30000000000000004
// 这样是错误的
if (a + b == 0.3) {}
NaN 值
Not a Number。
判断 “不是数值” :isNaN()
数值转化
转的结果要么是数值,要么是 NaN。Number()
任何数据类型都能转,对象类型的转换遵循这个原则:
调用对象的 valueof()
方法,再按照其他类型的规则转换返回的值,如果转换结果为 NaN
,则调用对象的 toString()
方法,再按照转换返回的字符串值。
parseInt()
和 parseFloat()
适用于解析字符串 (因Number()
转化字符串时比较复杂且不够合理)
parseInt()
由于 parseInt()
建议无论在什么情况下都明确指定基数
console.log(parseInt(10, 2)); // 2 (按二进制解析)
console.log(parseInt(10, 8)); // 8 (按八进制解析)
console.log(parseInt(10, 10)); // 10 (按十进制解析)
console.log(parseInt(10, 16)); // 16 (按十六进制解析)
parseFloat()
var a = parseFloat("22.5")
console.log(a, typeof a); // 22.5 "number"
parseFloat() 只解析十进制值,如"0xA"
被解析为 0
。
第二点,字符串如果可以解析为整数,parseFloat() 会返回整数。
推荐文章: