资讯专栏INFORMATION COLUMN

javascript字符串转为数字

pingan8787 / 2859人阅读

摘要:字符串转为数字前言面试有点小尴尬一和规则忽略字符串前面的空格,直至找到第一个非空字符如果第一个非空字符不是数字或者是正负号则返回如果第一个是数字字符一直解析到一个非数字字符如果第一个是数字字符,能识别出各种整数格式接受第二个参数,即转换时使

字符串转为数字

前言面试有点小尴尬(1)

一、parseInt() 和 Number.parseInt()

规则
1.忽略字符串前面的空格,直至找到第一个非空字符
2.如果第一个非空字符不是数字或者是正负号则返回NaN
3.如果第一个是数字字符一直解析到一个非数字字符
4.如果第一个是数字字符,能识别出各种整数格式
5.接受第二个参数,即转换时使用的基数
6.小数向下取整

Number.parseInt("   123") // 123
Number.parseInt(" ab123") // NaN
Number.parseInt("") // NaN
Number.parseInt(" 31avs") // 31
Number.parseInt("0xf") // 15
Number.parseInt("070") // es3->56 es5->70
Number.parseInt("A", 16) // 10
Number.parseInt("A") // NaN
Number.parseInt("58.2") // 58
二、parseFloat() 和 Number.parseFloat()

规则
1.忽略字符串前面的空格,直至找到第一个非空字符
2.如果第一个非空字符不是数字或者是正负号则返回NaN
3.如果第一个是数字字符一直解析到一个非数字字符
4.字符串中第一个小数点是有效的第二个小数点是无效的
5.只解析10进制,不接受第二个参数

Number.parseFloat("  123") // 123
Number.parseFloat("  ab123") // NaN
Number.parseFloat("") // NaN
Number.parseFloat("  123.3.4eqw") // 123.3
Number.parseFloat("0xf") // 0
三、Number()

规则
1.如果是Boolean值,true和false分别返回1或0
2.如果是数字,只是单纯的传入和返回
3.如果是null,则返回0
4.如果是undefined返回NaN
5.如果是字符串
①如果字符串味空则返回零(忽略前导零)
②如果字符串为整数则返回整数(忽略前导零)
③如果字符串为浮点数则返回浮点数
④如果字符串为16进制,转为10进制返回
⑤除以上格式返回NaN
6.如果是对象,则调用对象的valueOf,按照前面的规则返回值,如果返回NaN,再调用toString(),按照前面的规则返回值

Number(true) // 1
Number(false) // 0
Number(null) // 0
Number(undefined) // 0
Number("") // 0
Number("123") // 123
Number("123.12") // 123.12
Number("0xf") // 16

在github上编辑此页
博主的个人博客

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/93404.html

相关文章

  • 简单说 !![]==true 与 []==true 引发的思考

    摘要:简单说中的与方法我们一句一句的看结果是逻辑非,会将操作数的布尔值求反,而就是类型转换,将对应的类型转换为型所以我们看一看,一次求反返回的就是,再求反返回的就是。原始值不可变更的值,包括布尔值数字和字符串。 说明 直接说出问题 !![] == true //结果是true [] == true //结果是false ![] == [] //结果是true 为什么会出现这种情...

    lbool 评论0 收藏0
  • 简单说 !![]==true 与 []==true 引发的思考

    摘要:简单说中的与方法我们一句一句的看结果是逻辑非,会将操作数的布尔值求反,而就是类型转换,将对应的类型转换为型所以我们看一看,一次求反返回的就是,再求反返回的就是。原始值不可变更的值,包括布尔值数字和字符串。 说明 直接说出问题 !![] == true //结果是true [] == true //结果是false ![] == [] //结果是true 为什么会出现这种情...

    gnehc 评论0 收藏0
  • 简单说 !![]==true 与 []==true 引发的思考

    摘要:简单说中的与方法我们一句一句的看结果是逻辑非,会将操作数的布尔值求反,而就是类型转换,将对应的类型转换为型所以我们看一看,一次求反返回的就是,再求反返回的就是。原始值不可变更的值,包括布尔值数字和字符串。 说明 直接说出问题 !![] == true //结果是true [] == true //结果是false ![] == [] //结果是true 为什么会出现这种情...

    Neilyo 评论0 收藏0
  • 简单说 !![]==true 与 []==true 引发的思考

    摘要:简单说中的与方法我们一句一句的看结果是逻辑非,会将操作数的布尔值求反,而就是类型转换,将对应的类型转换为型所以我们看一看,一次求反返回的就是,再求反返回的就是。原始值不可变更的值,包括布尔值数字和字符串。 说明 直接说出问题 !![] == true //结果是true [] == true //结果是false ![] == [] //结果是true 为什么会出现这种情...

    APICloud 评论0 收藏0
  • Javascript基础之-强制类型转换(二)

    摘要:所以无论还是都会进行类型转换,唯一的区别,就是会置否而不会。这时候,肯定会有人问,假如说我有其他的数据类型呢,又不是数字又不是字符串,比如说数组啊,对象啊,布尔值啥的,那么如果是引用数据类型,则先转为基本数据类型,再进行比较。 上一章主要讲了转换到数字,字符串和布尔类型的一些知识点,那么这一讲接着上面的继续讲。 思考下面这个问题: console.log(+123); // 123 ...

    kk_miles 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<