JS字符串和数字互相转换的n种方法

字符串转数字

方法主要有三种:
转换函数、强制类型转换、利用JS变量弱类型转换。

1. 转换函数parseInt() & parseFloat()

这二者都是JS全局函数。

1.1. parseInt()

1) parseInt() 函数可 解析一个字符串 ,并返回一个 整数
2) 语法: parseInt(string, radix)

string 必选,表示被解析的字符串。 radix 可选,表示要解析的数字的基数。 radix 介于 2 ~ 36 之间。
  • 如果 radix 缺省或其值为 0,则根据 string 开头来解析。
  • 如果小于 2 (!= 0)或者大于 36,返回 NaN
  • string 0X 0x 开头,以 16 为基数。
  • 以 0 开头,以8或16为基数。
  • 以 1 ~ 9 的数字开头,以10为基数。
  • 1.2 parseFloat()
    parseFloat() 函数可解析一个字符串,并返回一个 浮点数
  • 语法: parseFloat(string)
    1.3 Tips
    开头 结尾 的空格是允许的。字符串中间的空格不被允许。
  • 如果第一个字符不能被转换为数字,返回 NaN
  • 如果只想解析数字的整数部分,使用 parseInt()
  • 如果在解析过程中遇到了正负号(+ 或 -)、数字 (0-9)、小数点,或者科学记数法中的指数(e 或 E) 以外 的字符,则它会忽略该字符以及之后的所有字符,返回当前已经解析到的数字。即 只有字符串中的第一个数字会被返回。
  • 返回值为 Number 类型。
  • 2. 强制类型转换

    JS有三种转型函数。

  • Boolean() —— 转换为对应的布尔值
  • Number() —— 转换为对应的数值
  • String() —— 转换为对应的字符串
  • 2.1 Boolean()转换规则
    转换为true的值 转换为false的值 var y = str * 1; console.log(x, typeof x); // 12.345 number console.log(y, typeof y); // 12.345 number

    数字转字符串

    1. String()强制转换

    2. '+'字符串拼接

    var num = 3; console.log(num + '');

    3. Number类型内置方法

    3.1 toString()

    toString() 方法可以传递一个表示基数的参数,表示返回几进制数值的字符串形式。

    var num = 10;
    console.log(num.toString());   // '10'
    console.log(num.toString(2));  // '1010'
    console.log(num.toString(8));  // '12'
    console.log(num.toString(10)); // '10'
    console.log(num.toString(16)); // 'a'
    
    3.2 toFixed()

    toFixed()按照指定的小数位返回数值的字符串表示。如果数值本身包含的小数位比指定的还多,那么接近制定的最大小数位的值就会舍入

    var num1 = 10, num2 = 10.005;
    console.log(num1.toFixed(2), num2.toFixed(2)); // '10.00'  '10.01'
    
    3.3 toExponential()

    toExponential()方法返回以指数表示法表示的数值的字符串形式。也可以接受一个参数,用以指定输出结果中的小数位数。

    var num = 10;
    console.log(num.toExponential(1)) // '1.0e + 1'
    
    3.4 toPrecision()

    toPrecision()方法返回固定大小格式,也可能会返回指数格式。该方法也可以接受一个参数,用以表示数值的所有数字位数(不包括指数部分)。

    var num = 99;
    // 为了将99用一位数表示出来,四舍五入成了100
    console.log(num.toPrecision(1)); // '1e + 2' 
    console.log(num.toPrecision(2)); // '99'