javascript中数值及字符串转换方法

将一个非数值数据转换为数值

有三个方法能将一个非数值转换为数值:Number(),parseInt()和parseFloat()。bash

Number()

Number转换规则以下:函数

  1. Boolean类型的true和false分别转换为1和0;
  2. 数字值就是简单的传入和返回;
  3. null,返回0;
  4. undefined,返回NaN;
  5. 字符串则要分几种状况处理,空字符串返回0,仅包含数字或者数字及小数点的字符串,将其转换为相应的数值,包含除数字外其余类型字符的转为NaN;
  6. 对象的话,则调用对象的valueOf(), 按照前面的规则转换,若结果为NaN,则调用对象的toString(),在此按照前面的规则进行转换;
Number('abc'); // NaN
Number(''); // 0
Number(true); // 1
复制代码

注意:一元操做符也能实现和Number()一毛同样的功能。spa

Number()在处理字符串的时候比较复杂而且不够合理,所以在处理字符串的时候常常使用的是parseInt()和parseFloat().code

parseInt()和parseFloat()

与Number()不一样的是:对象

  • Number()将空字符串转换为0,而parseInt()和parseFloat()会将空字符串转换为NaN;
  • Number()转化的是整个值而不是部分值,parseInt()和parseFloat()只转化第一个无效字符以前的字符串。
  • parseInt()方法能够传第二个参数指定数值转换的基数(好比按照十进制解析仍是按照八进制解析等),parseInt只能解析十进制值;
Number('123abc'); // NaN
parseInt('123abc'); // 123
parseFloat('123.45ab); // 123.45 parseInt('10', 2); // 2, 按照二进制解析 parseInt('10', 10); // 10, 按照十进制解析 复制代码

**注意,再不指定parseInt()方法的基数,即不传第二个参数的时候,是由parseInt()来决定如何解析字符串的,所以为了不错误的解析,咱们最好永远指定基数。字符串

将一个值转换为字符串

有两种方式能够将一个值转换为字符串:toString()和String()string

toString()

除了undefined和null都有toString()方法,大多数状况下调用toString()方法没必要传参数,但在调用数值的toString()方法的时候,能够传递一个参数,输出数值的基数。it

String()

这个函数能够将任何类型的值转换为字符串,当不知道要转换的值是否为null或者undefined的时候,则可使用String()方法来转化。可将null转为'null',undefined转为'undefined'。class

另外要把某个值转为字符串还能够与一个空字符串作加法操做,一样能达到转换目的二进制

相关文章
相关标签/搜索