CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛

前端百题斩【006】——js中三类字符串转数字的方式-源码交易平台丞旭猿

写该系列文章的初衷是让每位前端工程师掌握高频知识点,为工作助力。这是前端百题斩的第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

声明:本文部分素材转载自互联网,如有侵权立即删除 。

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
相关推荐
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容