转换为字符串类型
方式一:
- 对于Number类型和Boolean类型来说, 直接利用变量调用toString()方法即可
- toString()方法会将调用者转换为字符串, 并且会将转换后的结果返回给我们,不会修改调用者原有的值
var num = 666;
var bl = true;
var res1 = num.toString();
var res2 = bl.toString();
- 对于null和undefined来说, 不能通过调用toString()方法来转换
var n = null;
var u = undefined;
var res3 = n.toString();//报错
var res4 = u.toString();//报错
- toString()括号里的值表示转换为多少进制
var num = 666;
var res4 = num.toString(2);
console.log(res4);//1010011010
var res5 = num.toString(16);
console.log(res5);//29a
方式二
- 将需要转换的数据传递给String()函数
- String()函数可以将Number/Boolean/null/undefined转换为字符串
var num = 666;
var bl = true;
var n = null;
var u = undefined;
var res1 = String(num);
var res2 = String(bl);
var res3 = String(n);
var res4 = String(u);
console.log(res1); //666
console.log(res2); //true
console.log(res3); //null
console.log(res4); //undefined
方式三
- 利用算数运算符的加法运算来转换, Number/Boolean/null/undefined转换为字符串
var res1 = num + "";
var res2 = bl + "";
var res3 = n + "";
var res4 = u + "";
console.log(res1);
console.log(res2);
console.log(res3);
console.log(res4); //undefined
- 任何类型和字符串想加,都会先转换为字符串之后再想加
转换为Number类型
方式一
- 将需要转换的数据传递给Number()函数
- 转换对象为字符串
- 都是数字, 正常转换
- 中部仅仅有数字,转换为NaN
- 没有内容"" " ",转换为0
- 对于布尔类型: true转换为1, false转换为0
- 对于null: 转换为0
- 对于undefined: 转换为NaN
- 通过Number函数或者通过+-运算符转换,都不能转换复杂的字符串
var bl = true;
var n = null;
var u = undefined;
var str1 = "123";
var str2 = "123abc";
var res1 = Number(bl);
var res2 = Number(n);
var res3 = Number(u);
var res4 = Number(str1);
var res5 = Number(str2);
console.log(res1); //1
console.log(res2); //0
console.log(res3); //NaN
console.log(res4); //123
console.log(res5); //NaN
方式二
- 利用算数运算符来转换
- 在需要转换的类型前面加上+加号或者-减号即可
- +加号不会改变数据的正负性,减号会改变
- 通过Number函数或者通过+-运算符转换,都不能转换复杂的字符串
var bl = true;
var n = null;
var u = undefined;
var str1 = "123";
var str2 = "123abc";
var res1 = +bl;
var res2 = +n;
var res3 = +u;
var res4 = -str1;
var res5 = +str2;
console.log(res1); //1
console.log(res2); //0
console.log(res3); //NaN
console.log(res4); //-123
console.log(res5); //NaN
方式三
- 通过parseInt()/parseFloat()函数
- parseInt: 只能提取整数
- parseFloat: 可以提取小数
- 可以转换复杂字符串
var num1 = 3.14;
var bl = true;
var n = null;
var u = undefined;
var str1 = "123";
var str2 = "123abc123";
var res1 = parseFloat(num1);
var res2 = parseInt(bl);
var res3 = parseInt(n);
var res4 = parseInt(u);
var res5 = parseInt(str1);
var res6 = parseInt(str2);
console.log(res1); //3.14
console.log(res2); //NaN
console.log(res3); //NaN
console.log(res4); //NaN
console.log(res5); //123
console.log(res6); //123
- 不能转换boolean/null/undefined
- parseInt/parseFloat ,会从左至右的提取,一旦被中断后续的就提取不到了
- 对于parseFloat来说,只能提取一个点,第二个点会被中断
var str3 = "3.123.66";
var res7 = parseFloat(str3);
console.log(res7); //3.123
转换为boolean
- 将需要转换的数据传递给Boolean()函数即可
- 对于字符串而言:
- 只要是空字符串(没有任何内容), 都会转换为false
- 只要字符串中有内容(包含空格/Table),都会转换为true
- 对于Number类型而言:只要不是0都会转换为true,只有0会转换为false
- 对于null和undefined而言, 都会转换为false
- 对于NaN也会转换为false
总结:"" / 0 / null / undefined / NaN --> false
var num = 666;
var n = null;
var u = undefined;
var str4 = "";
var str5 = " ";
var res1 = Boolean(num);
var res2 = Boolean(u);
var res3 = Boolean(n);
var res4 = Boolean(str4);
var res5 = Boolean(str5);
console.log(res1); //true
console.log(res2); //false
console.log(res3); //false
console.log(res4); //false
console.log(res5); //true