面试题中常见的类型转换陷阱
********本文基于ES5********
parseInt()获取到数字后,只取整数位部分,若为数字开头字符串,则取连续的、开头的数字,再取整数部分。demo如下:
var i=1.6; console.log(parseInt("123abc")); //123 console.log(parseInt("12.3abc")); //12 console.log(parseInt("abc123")); //NaN console.log(parseInt("abc")); //NaN console.log(parseInt("1.6")); //1 console.log(parseInt(i)); //1
parseFloat() 该函数指定字符串中的首个字符是否是数字。如果是,则对字符串进行解析,直到到达数字的末端为止,然后以数字返回该数字,而不是作为字符串。
console.log(parseFloat("2.3a")); //2.3 console.log(parseFloat("2.a3a")); //2 console.log(parseFloat("2.0a3a")); //2 console.log(parseFloat("a2.0a3a")); //NaN console.log(parseFloat("12.300")); //12.3
Number()函数把对象的值转换为数字。若遇到字符串,则取整体。其次,此函数还可将空字符串转化为0
console.log(Number("abc123")); //NaN console.log(Number("123abc")); //NaN console.log(Number("")); //0
喜欢请点击右下角推荐,如有疑问可以留言,转载请标明出处。