1.转换为布尔型
' ' 、 0 、 undefined 、 null 、 false 、 NaN 转换为布尔值后都是false,其余则为true
2.逻辑中断
(1)逻辑与 &&
左边为flase则短路
<script>
// 逻辑与 &&
console.log(flase && 20) // flase
console.log(5 < 3 && 20) // flase
console.log(undefined && 20) // undefined
console.log(null && 20) // null
console.log(0 && 20) // 0
console.log(10 && 20) // 20
</script>
(2)逻辑或 ||
左边为true则短路
<script>
// 逻辑或 ||
console.log(flase || 20) // 20
console.log(5 < 3 || 20) // 20
console.log(undefined || 20) // 20
console.log(null || 20) // 20
console.log(0 || 20) // 20
console.log(10 || 20) // 10
</script>
3.隐式转换
(1)有字符串的加法
"" + 1 结果是 1
(2)减法 -
只能用于数字,会使空字符串 " " 转换为 0
(3)null经过数字转换后会变成0
(4)undefined经过数字转换后会变成NaN,undefined做任何操作是NaN
(5)+ 两边只要有一个是字符串都会把另一个转换为string
(6)除 + 以外的运算符,都会把数据类型转换为number
(7)+ 可作为正号解析,转换成number
<script>
// 隐式转换
console.log('' - 1) // -1
console.log('优快云' - 1) // NaN
console.log(null + 1) // 1
console.log(undefined + 1) // NaN
console.log(NaN + 1) // NaN
</script>
4.显示转换
(1)parseInt 转换成整数
(2)parseFloat 转换成浮点数
(3)console.log(Number(num)) 转换成Number型
其中Number 可替换成String、Boolean等其他数据类型
<script>
// 显示转换
console.log(parseInt('12.34px'))//12
console.log(parseFloat('12.34px'))//12.34
let num = prompt('请输入年薪:')//字符型
console.log(Number(num))//数字型
</script>