JavaScript - 数值类型的判断与常用转换方式
2021-06-30 23:04
标签:glob 多个 oat parse 就是 参考 undefined null 自动 主要参考: 可接受任意参数,用来判断其参数是否为NaN(not a number) 由于把NaN与任何值(包括其自身)相比得到的结果都是false,因此无法通过 isNaN()与Number.isNaN() 直观的说, 因此, 综上,可有如下表示: 参数可为任何类型数据,具体转换规则可大致划分如下: 数字值,只是简单的传入和返回(前导零存在时无论多少都将视为八进制数); Boolean值,true和false将分别被转换为1和0; null值,返回为0; undefined值,返回为NaN; 字符串,又主要区分以下情况: 字符串中只包含数字(可带正/负号),则(忽略前导零后)转换为十进制数值; 字符串中包含有效浮点格式,则(忽略前导零后)将其转换为对应浮点数值; 字符串中包含有效十六进制格式,则将其转换为十进制数值; 字符串为空(可包含多个空格符),都将转换为0; 字符串中包含除上述字符外的其他字符时,将返回NaN 对象,将先调用对象的 语法 string:将被解析的目标(被转换后的)字符串参数; radix:(建议明确)标记参数string的数值转换基数。当该参数未使用,或值为undefined、0时,将遵循以下自动判断规则: 当字符串已“0x”/“0X”或“0”开头时将自动识别为十六进制或八进制(ECMAScript5中不支持识别为八进制,但各浏览器支持程度不一致); 当字符串起始位为其他值时,默认设定为10(十进制) 基本规则 前导/后置空格都将被忽略: 识别参数至第一个非数字字符(包括小数点、正/负号等),仅截取前面数字部分,后续字符将被忽略: 当首字符不是数字字符或正/负号时,直接返回NaN: 语法 扩展规则 区别于 能够识别适用于科学记数法的e/E操作符: 无法识别非十进制数字字符: 解析转换结果为整数时,将会直接返回整数: JavaScript - 数值类型的判断与常用转换方式 标签:glob 多个 oat parse 就是 参考 undefined null 自动 原文地址:https://www.cnblogs.com/JustBeZero/p/9639664.html
数值类型的判断方法isNaN()和Number.isNaN()
==
或===
运算符来判断某个值是否为NaN,isNaN()
函数也就是必需的
isNaN()
是用来判断参数值是否为NaN,而Number.isNaN()
是用来判断参数值是否为Number.NaN(即还需要判断类型为Number);isNaN()
会将参数值强制转换(通过Number()
)为Number后再判断是否为NaN,而Number.isNaN()
仅判断当前参数值是否为NaN。isNaN(x)
等价于Number.isNaN(Number(x))
Number()
Number(123); // 123
Number(0123); // 83
Number(00123); // 83
Number(0x123); // 291
Number(true); // 1
Number(false); // 0
Number(null); // 0
Number(undefined); // NaN
Number(‘123‘); // 123
Number(‘+123‘); // 123
Number(‘-123‘); // -123
Number(‘0123‘); // 123
Number(‘1.23‘); // 1.23
Number(‘01.23‘); // 1.23
Number(‘0.1.23‘); // NaN
Number(‘FFF‘); // NaN
Number(‘0xFFF‘); // 4095
Number(‘‘); // 0
Number(‘ ‘); // 0
valueOf()
方法后再尝试转换其返回值,如结果仍为NaN,会继续调用对象toString()
方法并转换其返回值parseInt()
parseInt()
是较于Number()
更为通用合理的解决方案
parseInt(string[, radix])
parseInt("0xFF"); // 255
parseInt("0123"); // 10
parseInt(" 123 "); // 123
parseInt("123ab"); // 123
parseInt("1+2"); // 1
parseInt("a123"); // NaN
parseInt("-123"); // -123
parseFloat()
parseFloat()
相较于parseInt()
扩展了浮点数的解析能力
parseFloat(value)
parseInt()
解析到的第一个小数点有效:parseFloat("0.123"); // 0.123
parseFloat("0.1.23"); // 0.1
parseFloat("3.14e-2"); // 0.0314
parseFloat("0.314E+2"); // 3.14
parseFloat("FF"); // NaN
parseFloat("0xFF"); // 0
parseFloat("5.00"); // 5
文章标题:JavaScript - 数值类型的判断与常用转换方式
文章链接:http://soscw.com/essay/100049.html