一、变量转换为字符串
注:以下代码均可在F12的Console中运行查看。
(1)、toString()方法
var num = 18;
var isRight = true;
console.log(num.toString()); // '18'
console.log(isRight.toString()); // 'true'
但是当变量的值为null或者undefined时,第1种方法就不行了。
(2)、String()
var num = 18;
var isRight = true;
console.log(String(num)); // '18'
console.log(String(isRight)); // 'true'
var a = null;
console.log(String(a)); // 'null'
console.log(typeof String(a)); //string
(3)、字符串拼接
var num = 18;
var isRight = true;
console.log(num + ''); // '18'
console.log(isRight + ''); // 'true'
二、变量转换为数值类型
(1)、Number()方法
var str = 'abc';
var isRight = true;
console.log(Number(str)); //NaN(not a number) 不是一个数字
console.log(Number(isRight )); // 1
console.log(Number('123')); //123
console.log(Number('123abc')); //NaN
Number()把字符串转换为数字的时候,有一个字符不是数字的话,就会返回NaN。
(2)parseInt()方法
var str = '123';
var isRight = false;
console.log(parseInt('123')); //123
console.log(parseInt(isRight)); // NaN
console.log(parseInt('abc')); // NaN
console.log(parseInt('123abc')); // 123
console.log(parseInt('abc123')); // NaN
parseInt()无法把布尔类型转换为数值类型,返回NaN。
同时parseInt()在转换字符串的时候,如果遇到数字就会转换数字,非数字就会返回。
(3)parseFloat()方法
var str = '123.67';
var isRight = false;
console.log(parseFloat(str)); //123.67
console.log(parseInt(str)); //123
console.log(parseFloat(isRight)); // NaN
console.log(parseFloat('123abc')); //123
console.log(parseFloat('123.12abc')); //123.12
console.log(parseFloat('123.15.12abc')); //123.15
parseFloat()无法把布尔类型转换为数值类型,返回NaN。
parseFloat()会解析第一个.遇到第二个.或者非数字就会结束。
如果解析的内容里只有整数,解析成整数。
(4)、取正或者取负
var num = -5;
console.log(num); // -5
var str = '123'
console.log(+str); //123
console.log(typeof(+str)); // number
console.log(-str); //123
console.log(+'123abc'); //NaN
var isOk = true;
console.log(+isOk); // 1
var str = '123'
console.log(str - 0); // 123 number型
var str = '123abc'
console.log(str - 0); // NaN
console.log(str + 0); // '123abc0'
+如果一边是数值类型,一边是字符串, 会把数值转换为字符串,在进行字符串的拼接。
-如果一边是字符串,一边是数值,会把字符串转换为数值类型在进行数值的减法运算。如果字符串转换为数值型失败,此时返回NaN。
三、转换成布尔类型
(1)、Boolean()
var str = 'abc';
var num = 123;
var a = null;
var b; //默认值是undefined
console.log(Boolean(str)); // true
console.log(Boolean(num)); // true
console.log(Boolean(a)); // false
console.log(Boolean(b)); //false
console.log(Boolean('')); //false
console.log(Boolean(0)); //false
console.log(Boolean(NaN)); //false
console.log(Boolean(-1)); //true
转换成false的情况: null undefined ‘’ 0 NaN 就这五种。