关于前端:前端百题斩006js中三类字符串转数字的方式

4次阅读

共计 1737 个字符,预计需要花费 5 分钟才能阅读完成。

写该系列文章的初衷是“让每位前端工程师把握高频知识点,为工作助力”。这是前端百题斩的第 6 斩,心愿敌人们关注公众号“执鸢者”,用常识武装本人的头脑。

js 中字符串转数字次要有三种形式:利用转换函数、强制类型转换、利用 js 变量弱类型转换,上面就从这三个方面来论述一下该转换形式:

6.1 转换函数

js 中字符串转数字的转换函数有两个:parseInt、parseFloat。

  1. parseInt

parseInt() 函数可解析一个字符串,并返回一个整数。

parseInt(string, radix)

radix 为可选参数,示意要解析的数字的基数。该值介于 2 ~ 36 之间,超出该范畴将返回 NaN。

console.log(parseInt('123abc', 10)); // 123
console.log(parseInt('123abc', 2)); // 1
console.log(parseInt('123abc', 8)); // 83
console.log(parseInt('123abc', 16)); // 1194684
console.log(parseInt('abc', 10)); // NaN
  1. parseFloat

parseFloat() 函数可解析一个字符串,并返回一个浮点数。该函数指定字符串中的首个字符是否是数字。如果是,则对字符串进行解析,直到达到数字的末端为止,而后以数字返回该数字,而不是作为字符串。如果字符串的第一个字符不能被转换为数字,那么 parseFloat() 会返回 NaN。

parseFloat(string)
console.log(parseFloat('123.4d')); // 123.4
console.log(parseFloat('123abc')); // 123
console.log(parseFloat('abc')); // NaN

6.2 强制类型转换

js 中提供了一些强制类型转换函数,将字符串强制转换为数字的转换函数是 Number()。以这种形式调用 Number() 时,它会把本人的参数转化成一个数字,而后返回转换后的原始数值(或 NaN)。(注:其转换的为整个值,局部值为数字并不能实现转换,将返回 NaN)

console.log(Number('123.456')); // 123.456
console.log(Number('123abc')); // NaN
console.log(Number('1.2.3')); // NaN

6.3 弱类型转换

  1. 按位非

能够将字符串转换为整数,其原理是按位非运算符(~)会先将所有值转换为整数,再以二进制示意,最初执行按位取反操作。(留神:该办法转换的也是整个值,局部值为数字也不能实现转换)

console.log(~~'123'); // 123
console.log(~~'123.456'); // 123
console.log(~~'abc'); // 0
console.log(~~'123abc'); // 0
console.log(~~'0'); // 0
console.log(~~'-123'); // -123
  1. 正号运算符

该办法转换的也是整个值,局部值为数字也不能实现转换

console.log(+'123'); // 123
console.log(+'123.456'); // 123.456
console.log(+'abc'); // NaN
console.log(+'123abc'); // NaN
console.log(+'0'); // 0
console.log(+'-123'); // -123
  1. 四则运算符中的 -、*、/

该办法转换的也是整个值,局部值为数字也不能实现转换

console.log('123' - 0); // 123
console.log('123.456' * 1); // 123.456
console.log('abc' * 1); // NaN
console.log('123abc' - 0); // NaN
console.log('0' * 1); // 0
console.log('-123' * 1); // -123
console.log('0XFF' / 1); // 255

1. 如果感觉这篇文章还不错,来个分享、点赞吧,让更多的人也看到

2. 关注公众号执鸢者,与号主一起斩杀前端百题。

正文完
 0