diff --git a/04-JavaScript基础/08-基本数据类型:Undefined 和 Null.md b/04-JavaScript基础/08-基本数据类型:Undefined 和 Null.md index 71db0b9..7464ce2 100644 --- a/04-JavaScript基础/08-基本数据类型:Undefined 和 Null.md +++ b/04-JavaScript基础/08-基本数据类型:Undefined 和 Null.md @@ -8,10 +8,12 @@ title: 08-基本数据类型:Null 和 Undefined ## Undefined:未定义类型 -Undefined类型的值只有一个,就是 undefind。比如 `var a = undefined`。 +Undefined 类型的值只有一个,就是 undefind。比如 `var a = undefined`。 使用 typeof 检查一个 undefined 值时,会返回 undefined。 +undefined 的使用有下面这几种场景。 + ### case1:变量已声明,未赋值时 **声明**了一个变量,但没有**赋值**,此时它的值就是 `undefined`。举例: @@ -33,11 +35,11 @@ var name = undefined; 注意事项: -1、不要显式地将变量 赋值为 undefined,不太规范。也就是说,上面的写法2 是冗余的,增加了不必要的代码量,这种写法不太规范。 +1、不要显式地将变量赋值为 undefined,不太规范。也就是说,上面的写法 2 是冗余的,增加了不必要的代码量,这种写法不太规范。 -2、变量在定义时,尽量做一下初始化(赋值操作),而不是只声明一个变量。上面的写法1就是属于只声明一个变量,也不太推荐这种写法。 +2、变量在定义时,尽量做一下初始化(赋值操作),而不是只声明一个变量。上面的写法 1 就是属于只声明一个变量,也不太推荐这种写法。 -如果变量刚开始没有值,我们可以将其赋值为空字符串、false、0、null 等值,这有利于代码书写的语义化。推荐的代码举例: +如果变量刚开始没有值,我们可以将其赋一个默认值(空字符串、false、0、null 等值),这有利于代码书写的语义化。推荐的代码举例: ```js var a = ''; // 字符串类型的变量,如果刚开始没有值,则可以初始化为空字符串 @@ -105,25 +107,19 @@ foo(); ## Null:空对象 -null 专门用来定义一个**空对象**。例如:`let a = null`,又例如 `Object.create(null)`. +Null 类型的值只有一个,就是 null。比如 `var a = null`。 -如果你想定义一个变量用来保存引用类型,但是还没想好放什么内容,这个时候,可以在初始化时将其设置为 null。你可以把 null 理解为:**null 虽然是一个单独的数据类型,但null 相当于是一个 object,只不过地址为空(空指针)而已**。 +null 专门用来定义一个**空对象**。例如:`let a = null`,又例如 `Object.create(null)`。 -比如: +如果你想定义一个变量用来保存引用类型(也就是对象),但是还不确定放什么内容,这个时候,可以在初始化时将其赋值为 null。你可以把 null 理解为:**null 虽然是一个单独的数据类型,但null 相当于是一个 object,只不过地址为空(空指针)而已**。 + +从语义上讲,null表示一个空对象,所以使用 typeof 检查一个 null 值时,会返回 object。举例: ```js -let myObj = null; +var myObj = null; cosole.log(typeof myObj); // 打印结果:object ``` -补充: - -- Null 类型的值只有一个,就是 null。比如 `let a = null`。 - -- 从语义上讲,null表示一个空对象,所以使用 typeof 检查一个 null 值时,会返回 object。 - - - ## 其他区别 undefined 实际上是由 null 衍生出来的,所以`null == undefined`的结果为 true。