add:Vue 2.x(生命周期函数)
This commit is contained in:
@@ -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 属性相关
|
||||
### 属性相关
|
||||
|
||||
普通模式下,对一个对象的只读属性进行赋值,不会报错,只会默默地失败。严格模式下,将报错。
|
||||
|
||||
|
||||
@@ -527,7 +527,7 @@ console.log(fn1(1, 2)); //输出结果:3
|
||||
|
||||
如果我把第一个参数改一下,改成:
|
||||
|
||||
20180312_2017.png
|
||||

|
||||
|
||||
此时打印结果是:`vae smyh`。
|
||||
|
||||
|
||||
@@ -209,12 +209,9 @@ Symbol是函数,但并不是构造函数。创建一个Symbol数据类型:
|
||||
console.log(mySymbol); //打印结果:Symbol()
|
||||
```
|
||||
|
||||
|
||||
打印结果:
|
||||
|
||||
20180317_1134.png
|
||||
|
||||
|
||||

|
||||
|
||||
下面来讲一下Symbol的使用。
|
||||
|
||||
@@ -234,10 +231,9 @@ Symbol是函数,但并不是构造函数。创建一个Symbol数据类型:
|
||||
console.log(obj);
|
||||
```
|
||||
|
||||
|
||||
上面的代码中,我们尝试给obj添加一个Symbol类型的属性值,但是添加的时候,不能采用`.`这个符号,而是应该用`属性选择器`的方式。打印结果:
|
||||
|
||||
20180317_1145.png
|
||||

|
||||
|
||||
现在我们用for in尝试对上面的obj进行遍历:
|
||||
|
||||
@@ -261,11 +257,10 @@ Symbol是函数,但并不是构造函数。创建一个Symbol数据类型:
|
||||
|
||||
打印结果:
|
||||
|
||||
20180317_1817.png
|
||||

|
||||
|
||||
从打印结果中可以看到:for in、for of 遍历时不会遍历Symbol属性。
|
||||
|
||||
|
||||
### 创建Symbol属性值时,传参作为标识
|
||||
|
||||
如果我通过 Symbol()函数创建了两个值,这两个值是不一样的:
|
||||
@@ -279,7 +274,7 @@ Symbol是函数,但并不是构造函数。创建一个Symbol数据类型:
|
||||
console.log(mySymbol2); //打印结果:Symbol()
|
||||
```
|
||||
|
||||
20180317_1733.png
|
||||

|
||||
|
||||
上面代码中,倒数第三行的打印结果也就表明了,二者的值确实是不相等的。
|
||||
|
||||
@@ -288,7 +283,6 @@ Symbol是函数,但并不是构造函数。创建一个Symbol数据类型:
|
||||
既然Symbol()是函数,函数就可以传入参数,我们可以通过参数的不同来作为**标识**。比如:
|
||||
|
||||
|
||||
|
||||
```javascript
|
||||
//在括号里加入参数,来标识不同的Symbol
|
||||
let mySymbol1 = Symbol('one');
|
||||
@@ -302,21 +296,18 @@ Symbol是函数,但并不是构造函数。创建一个Symbol数据类型:
|
||||
|
||||
打印结果:
|
||||
|
||||
20180317_1739.png
|
||||

|
||||
|
||||
### 定义常量
|
||||
|
||||
Symbol 可以用来定义常量:
|
||||
|
||||
|
||||
|
||||
|
||||
```javascript
|
||||
const MY_NAME = Symbol('my_name');
|
||||
```
|
||||
|
||||
|
||||
|
||||
### 内置的 Symbol 值
|
||||
|
||||
除了定义自己使用的 Symbol 值以外,ES6 还提供了 11 个内置的 Symbol 值,指向语言内部使用的方法。
|
||||
@@ -326,7 +317,6 @@ Symbol 可以用来定义常量:
|
||||
对象的`Symbol.iterator`属性,指向该对象的默认遍历器方法。
|
||||
|
||||
|
||||
|
||||
## async函数(异步函数)
|
||||
|
||||
### 概述
|
||||
|
||||
@@ -35,7 +35,7 @@ ES6中的字符串扩展,用得少,而且逻辑相对简单。如下:
|
||||
|
||||
打印结果:
|
||||
|
||||
20180402_1050.png
|
||||

|
||||
|
||||
## 数值的扩展
|
||||
|
||||
@@ -115,11 +115,11 @@ ES6中的字符串扩展,用得少,而且逻辑相对简单。如下:
|
||||
|
||||
上面的布局中,有三个button标签,我们通过`getElementsByTagName`获取到的`btnArray`实际上是**伪数组**,并不是真实的数组:
|
||||
|
||||
20180402_1116.png
|
||||

|
||||
|
||||
既然`btnArray`是伪数组,它就不能使用数组的一般方法,否则会报错:
|
||||
|
||||
20180402_1121.png
|
||||

|
||||
|
||||
解决办法:采用`Array.from`方法将`btnArray`这个伪数组转换为真数组即可:
|
||||
|
||||
@@ -129,7 +129,7 @@ ES6中的字符串扩展,用得少,而且逻辑相对简单。如下:
|
||||
|
||||
然后就可以使用数组的一般方法了:
|
||||
|
||||
20180402_1125.png
|
||||

|
||||
|
||||
### 扩展2
|
||||
|
||||
@@ -259,7 +259,7 @@ ES6中的字符串扩展,用得少,而且逻辑相对简单。如下:
|
||||
|
||||
打印结果:
|
||||
|
||||
20180404_2240.png
|
||||

|
||||
|
||||
上图显示,成功将obj1和obj2的属性复制给了obj3。
|
||||
|
||||
@@ -280,7 +280,7 @@ ES6中的字符串扩展,用得少,而且逻辑相对简单。如下:
|
||||
|
||||
打印结果:
|
||||
|
||||
20180404_2251.png
|
||||

|
||||
|
||||
上方代码中,obj2本身是没有属性的,但是通过`__proto__`属性和obj1产生关联,于是就可以获得obj1里的属性。
|
||||
|
||||
@@ -307,13 +307,6 @@ ES6中的字符串扩展,用得少,而且逻辑相对简单。如下:
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user