add: var、let、const 的区别
This commit is contained in:
@@ -253,7 +253,7 @@ console.log(1+2+3); //输出6
|
||||
6
|
||||
```
|
||||
|
||||
**总结**:如果加号两边**都是**数值,此时是加。否则,就是连字符(用来连接字符串)。
|
||||
**总结**:如果加号两边**都是** Number 类型,此时是数字相加。否则,就是连字符(用来连接字符串)。
|
||||
|
||||
举例1:
|
||||
|
||||
@@ -329,43 +329,6 @@ boolean
|
||||
布尔型和数字型相加时, true 按 1 来算 ,false 按 0 来算。
|
||||
|
||||
|
||||
## Null 和 Undefined
|
||||
|
||||
### `null`:空值
|
||||
|
||||
专门用来表示一个为空的**对象**(例如:`var a = null`)。注意,专门用来表示**空对象**。
|
||||
|
||||
- Null类型的值只有一个,就是null。比如 `var a = null`。
|
||||
|
||||
- 使用 typeof 检查一个null值时,会返回object。
|
||||
|
||||
|
||||
如果你想定义一个变量,以后打算存储为对象,但是还没想好放什么内容,这个时候,可以给 null。
|
||||
|
||||
比如:
|
||||
|
||||
```js
|
||||
var myObj = null;
|
||||
cosole.log(typeof myObj); // 打印结果:object
|
||||
```
|
||||
|
||||
|
||||
### `undefined`:未定义
|
||||
|
||||
**声明**了一个变量,但是没有**赋值**(例如:`var a;`),此时它的值就是 `undefined`。
|
||||
|
||||
- Undefined类型的值只有一个,就是undefind。比如
|
||||
|
||||
- 使用 type of 检查一个undefined时,会返回undefined。
|
||||
|
||||
null和undefined有很大的相似性。看看null == undefined的结果(true)也就更加能说明这点。
|
||||
|
||||
但是null === undefined的结果(false)。它们虽然相似,但还是有区别的,其中一个区别是:和数字运算时,10 + null结果为:10;10 + undefined结果为:NaN。
|
||||
|
||||
- 任何数据类型和undefined运算都是NaN;
|
||||
|
||||
- 任何值和null运算,null可看做0运算。
|
||||
|
||||
## 变量值的传递(赋值)
|
||||
|
||||
语句:
|
||||
@@ -484,7 +447,7 @@ console.log(a-b);
|
||||
|
||||
## 我的公众号
|
||||
|
||||
想学习**代码之外的技能**?不妨关注我的微信公众号:**千古壹号**(id:`qianguyihao`)。
|
||||
想学习**代码之外的技能**?不妨关注我的微信公众号:**千古壹号**。
|
||||
|
||||
扫一扫,你将发现另一个全新的世界,而这将是一场美丽的意外:
|
||||
|
||||
121
04-JavaScript基础/05-基本数据类型:Null 和 Undefined.md
Normal file
121
04-JavaScript基础/05-基本数据类型:Null 和 Undefined.md
Normal file
@@ -0,0 +1,121 @@
|
||||
|
||||
很多其他的语言中,只有 null;但 JS 语言中,既有 null,又有 undefined。很多人会弄混,由此觉得 JS 语言很麻烦。其实不然,学习完这篇文章后,你会发现 null 和 undefined 的区别很容易理解。
|
||||
|
||||
## Null:空对象
|
||||
|
||||
null 专门用来定义一个**空对象**(例如:`var a = null`)。。
|
||||
|
||||
如果你想定义一个变量用来保存引用类型,但是还没想好放什么内容,这个时候,可以在初始化时将其设置为 null。
|
||||
|
||||
比如:
|
||||
|
||||
```js
|
||||
var myObj = null;
|
||||
cosole.log(typeof myObj); // 打印结果:object
|
||||
```
|
||||
|
||||
补充:
|
||||
|
||||
- Null 类型的值只有一个,就是 null。比如 `let a = null`。
|
||||
|
||||
- 使用 typeof 检查一个 null 值时,会返回 object。
|
||||
|
||||
## undefined
|
||||
|
||||
### case1:变量已声明,未赋值时
|
||||
|
||||
**声明**了一个变量,但没有**赋值**,此时它的值就是 `undefined`。举例:
|
||||
|
||||
```js
|
||||
let name;
|
||||
console.log(name); // 打印结果:undefined
|
||||
console.log(typeof name); // 打印结果:undefined
|
||||
```
|
||||
|
||||
补充:
|
||||
|
||||
- Undefined 类型的值只有一个,就是 undefind。比如 `let a = undefined`。
|
||||
|
||||
- 使用 typeof 检查一个 undefined 值时,会返回 undefined。
|
||||
|
||||
### case2:变量未声明(未定义)时
|
||||
|
||||
如果你从未声明一个变量,就去使用它,则会报错(这个大家都知道);此时,如果用 `typeof` 检查这个变量时,会返回 `undefined`。举例:
|
||||
|
||||
```js
|
||||
console.log(typeof a); // undefined
|
||||
console.log(a); // 打印结果:Uncaught ReferenceError: a is not defined
|
||||
```
|
||||
|
||||
### case3:函数无返回值时
|
||||
|
||||
如果一个函数没有返回值,那么,这个函数的返回值就是 undefined。
|
||||
|
||||
或者,也可以这样理解:在定义一个函数时,如果没有 return 语句,那么,其实就是 `return undefined`。
|
||||
|
||||
举例:
|
||||
|
||||
```js
|
||||
function foo() {}
|
||||
|
||||
console.log(foo()); // 打印结果:undefined
|
||||
```
|
||||
|
||||
### case4:调用函数时,未传参
|
||||
|
||||
调用函数时,如果没有传参,那么,这个参数的值就是 undefined。
|
||||
|
||||
举例:
|
||||
|
||||
```js
|
||||
function foo(name) {
|
||||
console.log(name);
|
||||
}
|
||||
|
||||
foo(); // 调用函数时,未传参。执行函数后的打印结果:undefined
|
||||
```
|
||||
|
||||
实际开发中,如果调用函数时没有传参,我们可以给形参设置一个默认值:
|
||||
|
||||
```js
|
||||
function foo(name) {
|
||||
name = name || 'qianguyihao';
|
||||
}
|
||||
|
||||
foo();
|
||||
```
|
||||
|
||||
等学习了 ES6 之后,上方代码也可以这样写:
|
||||
|
||||
```js
|
||||
function foo(name = 'qianguyihao') {}
|
||||
|
||||
foo();
|
||||
```
|
||||
|
||||
## 其他区别
|
||||
|
||||
null 和 undefined 有很大的相似性。看看 `null == undefined` 的结果为 `true` 也更加能说明这点。
|
||||
|
||||
但是 `null === undefined` 的结果是 false。它们虽然相似,但还是有区别的,其中一个区别是,和数字运算时:
|
||||
|
||||
- 10 + null 结果为 10。
|
||||
|
||||
- 10 + undefined 结果为 NaN。
|
||||
|
||||
规律总结:
|
||||
|
||||
- 任何数据类型和 undefined 运算都是 NaN;
|
||||
|
||||
- 任何值和 null 运算,null 可看做 0 运算。
|
||||
|
||||
|
||||
|
||||
## 我的公众号
|
||||
|
||||
想学习**代码之外的技能**?不妨关注我的微信公众号:**千古壹号**。
|
||||
|
||||
扫一扫,你将发现另一个全新的世界,而这将是一场美丽的意外:
|
||||
|
||||

|
||||
|
||||
Reference in New Issue
Block a user