add:Vue 2.x(生命周期函数)

This commit is contained in:
qianguyihao
2018-06-11 21:11:23 +08:00
parent 712ee55dd6
commit c616642834
6 changed files with 260 additions and 70 deletions

View File

@@ -50,12 +50,14 @@ PS如果浏览器不支持则这句话只解析为一条简单的语句,
## 严格模式和普通模式的区别
### 1、全局变量显式声明
> 下面列举几条严格模式的内容。
### 全局变量显式声明
在正常模式中,如果一个变量没有声明就赋值,默认是全局变量。严格模式禁止这种用法,全局变量必须显式声明。
### 2、禁止this关键字指向全局对象
### 禁止this关键字指向全局对象
```javascript
var foo = function () {
@@ -66,16 +68,15 @@ PS如果浏览器不支持则这句话只解析为一条简单的语句,
```
上方代码中普通模式打印的是window。严格模式下打印的是undefined。
### 3、创设eval作用域
### 创设eval作用域
### 2、禁止使用with语句
### 禁止使用with语句
因为with语句无法在编译时就确定属性到底归属哪个对象。
### 构造函数必须通过new实例化对象
构造函数必须通过new实例化对象否则报错。因为this为undefined此时无法设置属性。
@@ -94,12 +95,12 @@ PS如果浏览器不支持则这句话只解析为一条简单的语句,
上方代码中,如果在严格模式下,则会报错。
### 5、为了让代码更安全,禁止函数内部遍历调用栈
### 为了让代码更安全,禁止函数内部遍历调用栈
### 6、严格模式下无法删除变量
### 严格模式下无法删除变量
### 7~10 属性相关
### 属性相关
普通模式下,对一个对象的只读属性进行赋值,不会报错,只会默默地失败。严格模式下,将报错。

View File

@@ -527,7 +527,7 @@ console.log(fn1(1, 2)); //输出结果3
如果我把第一个参数改一下,改成:
20180312_2017.png
![](http://img.smyhvae.com/20180312_2017.png)
此时打印结果是:`vae smyh`

View File

@@ -209,12 +209,9 @@ Symbol是函数但并不是构造函数。创建一个Symbol数据类型
console.log(mySymbol); //打印结果Symbol()
```
打印结果:
20180317_1134.png
![](http://img.smyhvae.com/20180317_1134.png)
下面来讲一下Symbol的使用。
@@ -234,10 +231,9 @@ Symbol是函数但并不是构造函数。创建一个Symbol数据类型
console.log(obj);
```
上面的代码中我们尝试给obj添加一个Symbol类型的属性值但是添加的时候不能采用`.`这个符号,而是应该用`属性选择器`的方式。打印结果:
20180317_1145.png
![](http://img.smyhvae.com/20180317_1134.png)
现在我们用for in尝试对上面的obj进行遍历
@@ -261,11 +257,10 @@ Symbol是函数但并不是构造函数。创建一个Symbol数据类型
打印结果:
20180317_1817.png
![](http://img.smyhvae.com/20180317_1134.png)
从打印结果中可以看到for in、for of 遍历时不会遍历Symbol属性。
### 创建Symbol属性值时传参作为标识
如果我通过 Symbol()函数创建了两个值,这两个值是不一样的:
@@ -279,7 +274,7 @@ Symbol是函数但并不是构造函数。创建一个Symbol数据类型
console.log(mySymbol2); //打印结果Symbol()
```
20180317_1733.png
![](http://img.smyhvae.com/20180317_1134.png)
上面代码中,倒数第三行的打印结果也就表明了,二者的值确实是不相等的。
@@ -288,7 +283,6 @@ Symbol是函数但并不是构造函数。创建一个Symbol数据类型
既然Symbol()是函数,函数就可以传入参数,我们可以通过参数的不同来作为**标识**。比如:
```javascript
//在括号里加入参数来标识不同的Symbol
let mySymbol1 = Symbol('one');
@@ -302,21 +296,18 @@ Symbol是函数但并不是构造函数。创建一个Symbol数据类型
打印结果:
20180317_1739.png
![](http://img.smyhvae.com/20180317_1134.png)
### 定义常量
Symbol 可以用来定义常量:
```javascript
const MY_NAME = Symbol('my_name');
```
### 内置的 Symbol 值
除了定义自己使用的 Symbol 值以外ES6 还提供了 11 个内置的 Symbol 值,指向语言内部使用的方法。
@@ -326,7 +317,6 @@ Symbol 可以用来定义常量:
对象的`Symbol.iterator`属性,指向该对象的默认遍历器方法。
## async函数异步函数
### 概述

View File

@@ -35,7 +35,7 @@ ES6中的字符串扩展用得少而且逻辑相对简单。如下
打印结果:
20180402_1050.png
![](http://img.smyhvae.com/20180402_1050.png)
## 数值的扩展
@@ -115,11 +115,11 @@ ES6中的字符串扩展用得少而且逻辑相对简单。如下
上面的布局中有三个button标签我们通过`getElementsByTagName`获取到的`btnArray`实际上是**伪数组**,并不是真实的数组:
20180402_1116.png
![](http://img.smyhvae.com/20180402_1116.png)
既然`btnArray`是伪数组,它就不能使用数组的一般方法,否则会报错:
20180402_1121.png
![](http://img.smyhvae.com/20180402_1121.png)
解决办法:采用`Array.from`方法将`btnArray`这个伪数组转换为真数组即可:
@@ -129,7 +129,7 @@ ES6中的字符串扩展用得少而且逻辑相对简单。如下
然后就可以使用数组的一般方法了:
20180402_1125.png
![](http://img.smyhvae.com/20180402_1125.png)
### 扩展2
@@ -259,7 +259,7 @@ ES6中的字符串扩展用得少而且逻辑相对简单。如下
打印结果:
20180404_2240.png
![](http://img.smyhvae.com/20180404_2240.png)
上图显示成功将obj1和obj2的属性复制给了obj3。
@@ -280,7 +280,7 @@ ES6中的字符串扩展用得少而且逻辑相对简单。如下
打印结果:
20180404_2251.png
![](http://img.smyhvae.com/20180404_2251.png)
上方代码中obj2本身是没有属性的但是通过`__proto__`属性和obj1产生关联于是就可以获得obj1里的属性。
@@ -307,13 +307,6 @@ ES6中的字符串扩展用得少而且逻辑相对简单。如下