一、Undefined
1、类型说明
- undefined类型只有一个值:undefined
- 只声明未赋值的变量的值隐式的被赋值为undefined
- 也可以显式给变量赋值undefined;
var unde = undefined - 显式和隐式的值是一样的
二、Null
1、类型说明
- null类型只有一个值:null
- null表示空对象
- 需要一个对象,而又没有满足条件的对象时适合用null
三、布尔Boolean
1、类型说明
- boolean类型有两个取值:true 和 false
2、其他类型转为布尔的两种方式
- 隐式转换:当场景需要一个布尔值时候,对应的值会被隐式的转为布尔值
- 显式转换:Boolean(待转换的值)
3、转换规则
- Undefined类型:转为 false
- Null类型:转为 false
- Boolean类型:
- 值true:转为 true
- 值false:转为 false
- Number:
- 值0:转为 false
- 值NaN:转为 false
- 其他数值:转为 true
- String:
- 空字符串"":转为 false
- 其他字符串:转为 true
- Object:转为true
四、示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>数据类型</title>
<script>
console.log("========undefined========");
var unde1;
console.log(unde1);
var unde2 = undefined;
console.log(unde2);
console.log(unde1 == unde2);
console.log("========null========");
var nul = null;
function giveMeOneObeject(obj) {
if (typeof obj == "object") {
console.log("谢谢你传递的对象参数");
if (obj == null) {
console.log("我发现了:你给我传递的是一个不能使用的空对象");
}
} else {
console.log("没有给我一个对象参数,我很负责任的告诉你,黎叔很生气!");
}
}
giveMeOneObeject(nul);
console.log("========boolean========");
var tru = true;
var fals = false
if (tru) {
console.log("恭喜你,你满足了条件");
}
if (fals == false) {
console.log("虽然你是false,但是你也是JavaScript中非常重要的一部分");
}
var unde = undefined;
if (unde) {
console.log("这里的代码要是能执行,黎叔给你表演一个徒手剥生鸡蛋");
} else {
console.log("当需要一个布尔值时候undefined会被隐式的转为false");
var bool1 = Boolean(unde);
console.log("undefined显式转换结果:" + bool1);
}
var nu = null;
if (nu) {
console.log("这里的代码要是能执行,黎叔给你表演一个生鸡蛋");
} else {
console.log("当需要一个布尔值时候null会被隐式的转为false");
var bool2 = Boolean(nu);
console.log("null显式转换结果:" + bool2);
}
var tr = Boolean(true);
var fal = Boolean(false);
console.log("当需要一个布尔值时候true会被隐式的转为" + tr);
console.log("false:喂 兄弟,咱俩转换了一个寂寞,我就不打印了,告辞!");
var num0 = 0;
var nan = NaN;
var numI = Infinity;
var _numI = -Infinity;
if (num0 || nan) {
console.log("黎叔累了,黎叔歇歇");
} else {
console.log("当需要一个布尔值时候0和NaN会被隐式的转为false");
var bool3 = Boolean(num0);
console.log("0显式转换结果:" + bool3);
var bool4 = Boolean(nan);
console.log("NaN显式转换结果:" + bool4);
}
if (numI && _numI && 1 && -1) {
console.log("除了0和NaN其他数值都可以被转为true");
}
var str1 = "";
var str2 = " ";
if (str1) {
console.log("这里的代码要是能执行,黎叔给你表演一个生鸡蛋");
} else {
console.log('当需要一个布尔值时候空字符串""会被隐式的转为false');
var bool5 = Boolean(str1);
console.log('空字符串""显式转换结果:' + bool5);
}
if (str2) {
console.log("除了空字符串其他字符串都可以被转为true,哪怕是一个空格");
console.log("空字符串长度:" + str1.length);
console.log("空格长度:" + str2.length);
}
</script>
</head>
<body>
</body>
</html>
|