2.5 类型转换

类型转换,指的是将“一种数据类型”转换为“另外一种数据类型”。在JavaScript 中,共有两种类型转换。

  • 隐式类型转换

隐式类型转换,指的是JavaScript 自动进行的类型转换。

var a = 1;
var words = "the number is "+ a;
console.log(words);
//返回 the number is 1,这里的int a 被隐式转换成了 string
  • 显式类型转换

显式类型转换,指的是需要用代码强制进行的类型转换。

2.5.1 字符串转换成数字

Number()

Number() 只能转换内容为数字的数字型字符串(形如3.14,265...)。

var words = "1024";
typeof(Number(words)); //输出number
parseInt() 和parseFloat()

parseInt()和parseFloat()

parseInt() 和parseFloat 是提取“首字符为数字的任意字符串”中的数字,其中,parseInt() 提取的是整数部分,parseFloat() 不仅会提取整数部分,还会提取小数部分。

var words = "2019年12月5日";
console.log(parseInt(words)); //输出 2019
var words = "3.14是一个固定的值";
console.log(parseFloat(words)); // 输出3.14
console.log(parseInt(words)); //输出3

parseInt() 会从左到右进行判断,如果第一个字符是数字,则继续判断,直到出现非数字为止(小数点也是非数字);如果第一个字符是非数字,则直接返回NaN(Not a Number)。

因为加号和减号在数学上其实就是表示一个数的正和负,所以parseInt() 可以接受第一个字符是“+”或“-”。同样的,parseFloat() 也有这个特点。

parseFloat() 跟parseInt() 非常类似,都是从第一个字符从左到右开始判断。如果第一个字符是数字,则继续判断,直到出现除了数字和小数点之外的字符为止;如果第一个字符是非数字,则直接返回NaN。
在“首字母是+、- 或数字的字符串”中,不管是整数部分,还是小数部分,parse Float() 同样可以转换。这一点上跟parseInt() 是不一样的。

2.5.2 数字转换成字符串

在JavaScript 中,想要将数字转换为字符串,也有两种方式。

  • 与空字符串相加

    var a = 1;
    var words = "the number is "+ a;
    console.log(words);
    //返回 the number is 1,这里的int a 被隐式转换成了 string

  • toString()

    var a = 3.14159265378;
    typeof(toString(a)); // 输出 string
    typeof(a.toString()); // 输出 string

在实际开发中,如果想要将数字转换为字符串,我们很少使用toString() 方法,而更多地使用隐式类型转换的方式。

标签: none

分享到: