一、将其他类型转为数字类型
1.使用Number()函数
/**
*字符串转数字
* 1.如果是纯数字的字符串,则直接将其转换为数字
* 2.如果字符串中有非数字的内容,则转换为NaN
* 3.如果字符串是一个空串或者是一个全是空格的字符串,则转换为0
*布尔转数字
* true 转成 1
* false 转成 0
*null 转数字 0
*undefined转数字 NaN
*/
Number('1234') // 1234
Number('1234aa') // NaN
2.使用parseInt() 和 parseFloat 函数
这种方式专门用来对付字符串
parseInt() 把一个字符串转换为一个整数
parseFloat() 把一个字符串转换为一个浮点数
/*
* parseInt()可以将一个字符串中的有效的整数内容提取出来,
* 然后转换为Number,
* parseInt()解析字符串的时候如果第一个字符是数字会继续解析,直到遇到非数字的字符结束,如果第一个字符不是数字就返回NaN。
* parseFloat()作用和parseInt()类似,不同的是它可以获得有效的小数,
* parseFloat会解析第一个小数点遇到第二个.或者非数字结束如果解析的内容里只有整数,解析成整数。
*/
parseInt('123.45px') // 123
parseFloat('123.45px') // 123.45
3.如果需要表示16进制、8进制、2进制的数字,可以在parseInt()中传递一个第二个参数,来指定数字的进制
/*
* 在js中,如果需要表示16进制的数字,则需要以0x开头
* 如果需要表示8进制的数字,则需要以0开头
* 如果要要表示2进制的数字,则需要以0b开头
* 但是不是所有的浏览器都支持
*/
//十六进制
a = 0x10;
a = 0xff;
a = 0xCafe;
//八进制数字
a = 070;
//二进制数字
//a = 0b10;
//向"070"这种字符串,有些浏览器会当成8进制解析,有些会当成10进制解析
a = "070";
//可以在parseInt()中传递一个第二个参数,来指定数字的进制
a = parseInt(a,10);
console.log(typeof a);
console.log(a);
二、将其他类型转为字符串
1.数据的.toString()方法
注意,不可以转null和underfined
var num = 1234
num.toString() // '1234'
2.String()方法
String(true) // 'true'
3.隐式转换:用加号运算符将其他数据用 + 和字符串相加时,会先把其它类型转换成字符串再进行字符串拼接,返回字符串