<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
alert("这是练习的代码");
// 交换两个变量的值
var a = 1;
var b = 2;
var temp = a;
a = b;
b = temp;
console.log(a,b);
// 字符串换行
var a = "打印时 \n换行";
console.log(a);
var a = "编译时 \ 折行"
console.log(a);
// 字符串操作
// 字符串跟任何数据类型相加,得到的结果都是字符串,对不是字符串的数据类型,会通过tostring转换成字符串数据类型
var a = "一直往南方开" + "一直往南方开";
console.log(a);
var a = "再见杰克" + 123;
console.log(a);
var a = "再见杰克" + false;
console.log(a);
var a = "再见杰克" + null;
console.log(a);
var a = "再见杰克" + undefined;
console.log(a);
// 数值
var a = 123;
console.log(a);
// 特殊数值
// 把值不是数字的字符串强转number,会得到NaN,不是一个数字
// 0 / 0 结果也是NaN
var a = "张三";
console.log(Number("a"));
// NaN和任何数字相加得到的结果都是NaN
var a = 0 / 0;
console.log(a + 123);
// NaN和字符串相加得到的是字符串
var a = 0 / 0;
var b = "张三";
console.log(a + b);
// NaN和boolean相加结果是NaN
var a = 0 / 0;
console.log(a + true);
// NaN和undefined相加结果是NaN
var a = 0 / 0;
console.log(a + undefined);
// NaN和null相加结果是NaN
console.log(a + null);
// 任何数据类型和NaN比较得到的结果都是false
var a = 0 / 0;
console.log(a == 1);
console.log(a > 1);
console.log(a < undefined);
console.log(a < "张三");
console.log(a > false);
// isNaN 判断数据不是一个数值,是数组返回false,不是数值返回true
console.log(isNaN("张三"));
console.log(isNaN(123));
console.log(isNaN(null));
console.log(isNaN(NaN));
// 最大值最小值,正无穷负无穷
console.log(Number.MAX_VALUE);
console.log(Number.MIN_VALUE);
console.log(Number.POSITIVE_INFINITY);
console.log(Number.NEGATIVE_INFINITY);
// boolean数据类型
// 返回的值只有两个,true和false,判断数据类型,占内存很小,只有1/8字节
// 重点:boolean六种false的情况--空字符串,0,NaN,false,undefined,null
// 判断字符串,字符串中有内容就是true,没有内容就是false
console.log(Boolean("张三"));
console.log(Boolean("")); //false
// 空格都算有内容
console.log(Boolean(" "));
// 判断数字
console.log(Boolean(0)); //false
console.log(Boolean(1243));
console.log(Boolean(NaN)); //false
console.log(Boolean(Infinity));
// 判断boolean
console.log(Boolean(true));
console.log(Boolean(false)); //false
// 判断undefined
console.log(Boolean(undefined)); //false
// 判断null
console.log(Boolean(null)); //false
// undefined
// 声明变量但是没有赋值,会出现undefined
var a;
console.log(a);
// 正常情况下,在 + 两端,除了字符串外,都算是数字的运算,所以会先把数据类型强转成number数据类型,再进行运算
var a;
console.log(a + 1); //结果NaN
// 底层运算为;
console.log(Number(a)); //输出NaN
console.log(Number(a) + 1); //NaN和任何数值相加结果都是NaN
// undefined派生自null,所以undefined == null
console.log(undefined == null); //输出true;
</script>
</body>
</html>