追梦人hqh

博客园 首页 联系 订阅 管理
看下你到底掌握这些东西没?

有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语句等循环语句配合使用;

博客园真是个好网站,在这里能学到很多东西!支持!

 

posted on 2016-06-23 16:46  追梦人hqh  阅读(106)  评论(0编辑  收藏  举报