Javascript中的数值转换问题(基础知识必备)

看下你到底掌握这些东西没?

  有3个函数可以把非数值转换为数值:Number()、parseInt()、parseFloat()
  第一个函数,即转型函数Number()可以用于任何数据类型,而另两个函数则专门用于把字符串转换成数值。
  这三个函数对于同样的输入会有返回不同的结果;


  Number()函数的转换规则如下:

  1,Boolean值,true和false将分别被转换为1或0;
  2,数字,简单的传入和返回;
  3,null,返回0;
  4,undefined,返回NaN;
  5,字符串:
       a,如果字符串中只包含数字(包括前面带正好或负号的情况),则将其转换为十进制数值,即“1”》》1,而“011”》》11(注意:前面的零会被忽略);
       b,如果字符串中包含有效的浮点格式,如“1.1”,则将其转换为对应的浮点数值(同样,也会忽略前面的零)
       c,如果字符串中包含有效的十六进制,例如“0xf”,则将其转换为相同大小的十进制整数值;
       d,如果字符串是空的(不包含任何字符),则将其转换为0;
       e,如果字符串中包含除上述格式之外的字符,则将其转换为NaN;
  6,如果是对象,则调用对象的valueOf()方法,然后依照前面的规则转换返回的值。如果转换的结果是NaN,则调用对象的toString()方法,然后再次依照前面的规则转换返回的字符串值。

        console.log(Number("Hello World!"))  // NaN
        console.log(Number(''));  //0
        console.log(Number('00001111'));  // 1111
        console.log(Number(true));// 1

  parseInt()函数转换


  此函数在转换字符串时,更多的是看其是否符合数值模式。它会忽略字符串前面的空格,直至找到第一个非空字符串字符。
  如果第一个字符不是数字或者负号,就会返回NaN;
  如果第一个字符时数字字符,就会继续解析第二个字符,直到解析完后续字符或遇到了一个非数字字符。
  例如:“1234andy”会被转换为 1234;“22.5”会被转换为22

复制代码
 1  console.log(parseInt('1234andy'));  // 1234
 2         console.log(parseInt(''));   // NaN
 3         console.log(parseInt('0xA'));  // 10(十六进制)
 4         console.log(parseInt(22.5)) ;  // 22
 5         console.log(parseInt('070'));  // 56(八进制)  // 注意:在使用parseInt()解析八进制字母量的字符串时,ES3认为是56(八进制);ES5认为是70(十进制)
 6         console.log(parseInt('70'));   //70(十进制)
 7         console.log(parseInt('0xf'));             //15(十六进制)
 8 
 9         // parseInt()传入两个参数的时候
10         console.log(parseInt('10',2)) // 按二进制解析
11         console.log(parseInt('10',8))   // 按八进制解析
12         console.log(parseInt('10',10))  // 按十进制解析
13         console.log(parseInt('10',16))  // 按十六进制解析
复制代码
 parseFloat()

 此函数也是从第一个字符(位置0)开始解析每个字符。而且也是一直解析到字符串末尾,或者解析到遇见一个无效的浮点数字字符为止。
 也就是说,字符串中的第一个小数点是有效的,而第二个小数点就是无效的,因此它后面的字符串将被忽略;
 此函数只解析十进制值,因为它没有第二个参数指定基数的用法。

1        console.log(parseFloat('1234blue'));  // 1234
2         console.log(parseFloat('0xA'));  // NaN
3         console.log(parseFloat('22.5'));  // 22.5
4         console.log(parseFloat('22.34.5')); // 22.34
5         console.log(parseFloat('0908.5')); // 908.5
6         console.log(parseFloat('3.125e7'));// 31250000

 

 PS:这些东西,虽然比较基础,但是如果你JS基础知识不牢固的话,显然,你只能算初级前端!要想知识牢固点,那就多学习吧!前面写了几篇博客,说我书写格式不规范,这次总行了吧!

附赠:label语句
 label语句:(下一次更新)
  使用label语句可以在代码中添加标签,以便将来使用。以下是label语句的语法
 label:  statement
  实例:
  start:for(var i=0;i<count;i++){
   console.log(i);
  }
 这个例子重定义的start标签可以将来由break或continue语句引用。加标签的语句一般都要与for语句等循环语句配合使用;




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值