<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>数据类型转换</title>
<script>
//1. 将 数值字符串 转成 数值--------------------------------------------
//1.1 parseInt(x),可以 将 数值字符串转成 整型数值
// parseInt 函数 可以见个数值字符串转成 整型数值,有很多特例
// a.在 遇到 第一个 数值 之前 如果 有空格,会 忽略空格
// b.在 遇到 数值 之后 遇到一个 非数值,则立即 停止 转换,只将前面的 数值字符串 转成数值
// c.在 遇到 第一个 数值 之后 遇到 空格,那么 也会 直接 停止 转换,,只将前面的 数值字符串 转成数值
console.log(parseInt('11')); // 11
console.log(parseInt('11.2')); // 11
console.log(parseInt(' 11')); // 11
console.log(parseInt('a 11')); // NaN
console.log(parseInt('121a11')); // 121
console.log(parseInt(' a121a11')); // NaN
console.log(parseInt('1 121a11')); // 1
//1.2 parseFloat(x),可以 将 数值字符串 转成数值 ,包括 小数
// 其他规则 都和 parseInt 一样,只不过 ,parseFloat 多认识 . 而已
console.log(parseFloat('11.2')); // 11.2
console.log(parseFloat('11.2a2')); // 11.2
//1.3 Number(x) 可以将 非数值 类型的 数据 转成 数值
console.log(Number(undefined)); // NaN
console.log(Number(null)); // 0
console.log(parseInt(true)); // NaN
console.log(Number(true)); // 1
console.log(Number(false)); // 0
console.log(Number('11.2')); // 11.2
console.log(Number('11')); // 11
console.log(Number('11aaa')); // NaN
// 1.4 转换数值 的一个 典型 应用
var width = '100px';
width = parseInt(width); // 100
width = width + 20; // 120
alert(width); // 120
// 2.将 字符串 转成 布尔值
// 除了 特殊 值(0,null,undefined,'',NaN) 之外,其它的 都是 true 凡是 代表 0,空,否定 的都是 false
alert(Boolean(0)); // false
alert(Boolean(1)); // true
//3.关于 数值运算 中的 隐式类型转换
// 所有 非 + 号 的 算数运算符 在 运算之前,都会尝试 将 两边的 数值字符串 转成 数值,然后再进行运算
var res = '5' * '2';
console.log(res); // 10
console.log('100' / '2'); // 50
console.log('41' % '5'); // 1
</script>
</head>
<body>
</body>
</html>