看下你到底掌握这些东西没? 有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语句等循环语句配合使用;