第二节 数据类型1-Undefined/Null/Boolean
- JS的5种简单数据类型分别是?
答:Undefined/Null/Boolean/Number/String,此外还有一种复杂数据类型-Object(本质是由一组无序的键值对组成) typeof的作用是?
答:负责检测给定变量的数据类型,使用方式为:var message = "aaa"; console.log(typeof message); //"string" console.log(typeof(message));//"string"返回值一个字符串,可能的返回结果包括
- "undefined" - 给定值未定义
- "boolean" - 给定值为布尔值
- "string" - 给定值为字符串
- "number" - 给定值为数值
- "object" - 给定值是对象或null
- "function" - 给定值是函数
这里有个很奇怪的地方,可以对未声明的变量使用typeof判断类型,此时不会报错,会返回undefined
- 什么是Undefined类型?
答:Undefeined类型只有一个值-undefined。使用var声明变量但未对其进行定义时,该变量的值即为undefined。此外,显式将变量定义为undefeined(var b = undefined)是没有必要的,这么做和直接定义一个变量(var a)是一样的效果。例:var a; console.log(a == undefined); //true console.log(a); //undefined console.log(typeof a) //undefined var b = undefined; console.log(a == b) //true - 什么是Null类型?
答:Null类型是第二个只有一个值的数据类型,其值为null。从逻辑的角度看,null值表示一个空对象指针(所以typeof检测null值时会返回"object")var car = null; console.log(typeof car); - Undefined和Null的关系?
答:undefined派生自null值,因此以下代码会返回true
undefined主要用于表明一个值尚未定义。null用于强调该值是空的。console.log(null == undefined) //true
只要意在保存对象的变量还没真正保存对象时,就应该明确的让该变量保存null。 - 什么是Boolean类型?
答:Boolean类型只有两个字面值(true/false)。True和False都不是Boolean值,只是标识符。 - 不同类型值间与Boolean的转换?
答:要将一个值转换为对应的Boolean,可以调用转型函数Boolean():
var msg = "hello"; var msg2Boolean = Boolean(msg); //true
| 数据类型 | 转为true的值 | 转为false的值 |
|---|---|---|
| Boolean | true | false |
| String | 任何非空字符串 | ""(空字符串) |
| Number | 任何非0数字(包括无穷大) | 0和NaN |
| Object | 任何对象 | null |
| Undefined | 不适用 | undefined |