parseInt()、Number()区别
parseInt从头解析string为整数,在遇到不能解析的字符时就返回已经解析的整数部分,如果第一个字符就不能解析,就直接返回NaN。
Number如果无法转换为数字,就返回NaN。像“123a”,parseInt()返回是123,Number()返回是NaN。
可以理解为Number转换的时候更严格
// 当字符串是由数字组成的时候 他们转换的数字一样的没有差别 let numStr = '123' console.log(parseInt(numStr)) //123 console.log(Number(numStr)) //123 // 当字符串是由字母组成的时候 let numStr = 'abc' console.log(parseInt(numStr)) //NaN console.log(Number(numStr)) //NaN // 当字符串是由数字和字母组成的时候 let numStr = '123a' console.log(parseInt(numStr)) //123 console.log(Number(numStr)) //NaN // 当字符串是由0和数字 let numStr = '0123' console.log(parseInt(numStr)) //123 console.log(Number(numStr)) //123 // **当字符串包含小数点** let numStr = '123.456' console.log(parseInt(numStr)) //123 console.log(Number(numStr)) //123.456 // **当字符串为null时** let numStr = null console.log(parseInt(numStr)) //NaN console.log(Number(numStr)) //0 // **当字符串为''(空)时** let numStr = '' console.log(parseInt(numStr)) //NaN console.log(Number(numStr)) //0