javascript 语法基础 类型转换
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() 方法,而更多地使用隐式类型转换的方式。