《每天十分钟》-红宝书第4版-语言基础-数据类型(二)

数值转换

Number()

// 布尔值,true 转换为 1,false 转换为 0。
Number(true) // 1 

// 数值直接返回
Number(12) //12 
Number(0xf) // 15  16进制
Number(-0xf) // -15

// null 返回0
Number(null) // 0 

// undefined NaN
Number(undefined)

//字符串 忽略0 有符号算符号,转十进制
Number('123') // 123
Number('000000123') // 123 忽略前面的0
Number('-123') // -123 
Number('-00000123') // -123 
Number('+00000123') // 123 
Number('0.123') // 0.123
Number('000000000.123') // 0.123
Number('') // 0 
//注意 转换字符串带负号时不支持 2 、8 、16 进制
Number('0xf') // 15  16进制
Number('-0xf') // NaN 
Number('0b1') // 1
Number('-0b1') // NaN


从规则上看Number()函数转换字符串时有点不讲武德,所以在需要整数时优先使用 parseInt()函数

parseInt()
此方法转换规则非常简单,一个开头,一个结尾
从第一个非空格字符开始转换。如果第一个字符不是数值字符**、加号或减号**,parseInt()立即返回 NaN。如果第一个字符是数值字符、加号或减号,则继续依次检测每个字符,直到字符串末尾,或碰到非数值字符

这意味着空字符串也会返回 NaN(这一点跟 Number()不一样,它返回 0)。

parseInt('abc') // NaN
parseInt('123abc') // 123
parseInt('123.5') // 123
arseInt('    -123') // 123
parseInt('-123abc') // -123
//0x 起始 识别为16进制
parseInt('0xf') // 15
parseInt('-0xf') // -15
parseInt('     -0xf') // -15
// 劲酒虽好 , 但还是建议 指定进制,因为 parseInt 支持第二个参数 进制
parseInt('0xf',16) // 15
// 指定16 可以省略0x
parseInt('f',16) // 15
parseInt('11',2) // 3
parseInt('      -11',2) // -3
parseInt('      -11',8) // -9

parseFloat()
此方法规则也很简单和 parseInt 一致,有个特殊情况它始终忽略字符串开头的0,所以它遇到16进制 0x 会始终返回0,也就是说 parseFloat() 只能处理16进制

parseFloat('0.123') // 0.123
parseFloat('.123') // 0.123
parseFloat('         .123') // 0.123
parseFloat('      0xf') // 0
parseFloat('0123.123') // 123.123

又到了欣赏古诗时间

劝学诗 / 偶成
宋·朱熹
少年易老学难成,一寸光阴不可轻。
未觉池塘春草梦,阶前梧叶已秋声。

你可能感兴趣的:(《每天十分钟》红宝书第4版,前端)