值类型之间的相互转化
转字符串:String() | .toString() | "" + // 123..toString() | 重点是 "" +
转数字:Number(a) | parseFloat() | parseInt() | + // +'123'
// parseFloat('3.14.15') => 3.14 | parseInt('3.14.15') => 3
转布尔:Boolean(a)
非数字:NaN // 当一个其他类型转化为数字类型的产物
// 任何判断一个结果是否是NaN, isNaN(运算)
![]()
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>类型转化</title>
</head>
<body>
值类型之间的相互转化
</body>
<script>
// number | string | boolean
// 转化为boolean
var num = 10;
var s = "123";
num = 0;
s = "";
var b1 = Boolean(num);
var b2 = Boolean(s);
console.log(b1, b2);
// 后期我们会在if分支结构中的判断以及循环中的判断中使用boolean类型,
// 以上两种情况下, 系统都会把非boolean的数据自动转换为boolean
// 0 | "" | null | undefined | NaN => false, 其他都会转化为true
// 转化为数字类型
console.log(Number(false), Number(true), true + true);
var s1 = "123";
var s2 = "3.14";
var s3 = "123abc";
var s4 = "3.14.15";
var s5 = "abc123";
// 123 3.14 NaN NaN NaN
console.log(Number(s1), Number(s2), Number(s3), Number(s4), Number(s5));
var n3 = parseInt(s3);
console.log(n3);
var n4 = parseFloat(s4);
console.log(n4);
// 常用转化的字符串一定是一个合法的数字字符串形式(s1, s2)
var n1 = +s1;
console.log(n1, typeof n1);
console.log(+s2);
// 转化为字符串类型
var nn1 = 123;
var ss1 = String(nn1);
var ss2 = nn1.toString();
var ss3 = "" + nn1;
console.log(ss1, ss2, ss3);
// 了解
var ss4 = 123..toString();
console.log(ss4);
// 弱语言类型
console.log(3 + "5"); // "35"
console.log(3 - "5"); // -2
// 总结:
// 1.最快转化为数字类型 +"123" | +true
// 2.最快转化为字符串形式 "" + 123 | "" + true
</script>
</html>
View Code