基本数据类型 typeof 检测的结果
<script>
var a;
console.log(typeof 123); // number
console.log(typeof "hello"); // string
console.log(typeof true); // boolean
console.log(typeof false); // bolean
console.log(typeof a); // undefined
console.log(typeof undefined); // undefined
console.log(typeof null); // object
</script>
数据类型转换
其他值转数字
其他值转字符串
其他值转布尔值
其他值转数字
使用 Number(), 可以把任意数据类型, 转成数字
纯数字字符串, 会变成数字, 不是纯数字的字符串, 会变成 NaN not a number
<script>
console.log(Number("123")); // 123
console.log(Number("123.4")); // 123.4
console.log(Number("123年")); // NaN
console.log(Number("2e3")); // 2000
console.log(Number("")); // 0
</script>
布尔值, true ==> 1, false ==> 0
<script>
console.log(Number(true)); // 1
console.log(Number(false)); // 0
</script>
undefined ==> NaN, null ==> 0
<script>
console.log(Number(undefined)); // NaN
console.log(Number(null)); // 0
</script>
parseInt() 可以把字符串, 转成整数, 不会四舍五入
会自动截掉第一个非数字字符之后的所有字符
不是数字开头, 转成 NaN
<script>
console.log(parseInt("3.14")); // 3
console.log(parseInt("3.14是圆周率")); // 3
console.log(parseInt("圆周率是3.14")); // NaN
console.log(parseInt("3.99")); // 3
console.log(parseInt(3.99)); // 3
console.log(parseInt(true)); // NaN
console.log(parseInt(false)); // NaN
</script>
parseFloat() 可以把字符串, 转成浮点数/小数
会自动截掉第一个非数字字符之后的所有字符
不是数字开头, 转成 NaN
<script>
console.log(parseFloat("3.14")); // 3.14
console.log(parseFloat("123.456.789")); // 123.456
console.log(parseFloat("3.14是圆周率")); // 3.14
console.log(parseFloat("圆周率是3.14")); // NaN
console.log(parseFloat("3.99")); // 3.99
console.log(parseFloat(true)); // NaN
console.log(parseFloat(false)); // NaN
</script>
其他值转字符串
String(), 可以把任意数据类型, 转成字符串
会把值, 转成"长得相同"的字符串
非十进制或者科学计数法会转成十进制
<script>
console.log(String(123)); // "123"
console.log(String(123.4)); // "123.4"
console.log(String(2e3)); // "2000"
console.log(String(NaN)); // "NaN"
console.log(String(Infinity)); // "Infinity"
console.log(String(0xf)); // "15"
console.log(String(true)); // "true"
console.log(String(false)); // "false"
console.log(String(undefined)); // "undefined"
console.log(String(null)); // "null"
</script>
toString(), 所有的值都有这个方法, 作用是把当前值转成字符串
效果和规则, 与 String()相同
<script>
console.log(true.toString()); // "true"
console.log(String(true)); // "true"
console.log((6).toString()); // "6"
console.log(String(6)); // "6"
</script>
其他值转布尔值
Boolean() 可以把任意数据类型, 转成布尔值
数字转布尔值, 0 和 NaN 会变成 false, 其他都是 true
<script>
console.log(Boolean(123)); // true
console.log(Boolean(0)); // false
console.log(Boolean(NaN)); // false
console.log(Boolean(Infinity)); // true
console.log(Boolean(-Infinity)); // true
</script>
字符串转布尔值, 空字符串会变成 false, 其他的都变成 true
<script>
console.log(Boolean("")); // false
console.log(Boolean("abc")); // true
console.log(Boolean("0")); // true
console.log(Boolean("true")); // true
console.log(Boolean("false")); // true
</script>
undefined 和 null 转布尔值, 都会转成 false
<script>
console.log(Boolean(undefined)); // false
console.log(Boolean(null)); // false
</script>
常用数据类型转换表
