add:whistle拦截https请求
This commit is contained in:
@@ -41,7 +41,7 @@
|
||||
|
||||
打印结果:
|
||||
|
||||
20180314_2109.png
|
||||

|
||||
|
||||
**函数和方法的区别:**
|
||||
|
||||
@@ -104,7 +104,7 @@
|
||||
|
||||
打印结果:
|
||||
|
||||
20180314_2125.png
|
||||

|
||||
|
||||
## 作用域 Scope【重要】
|
||||
|
||||
@@ -154,7 +154,7 @@
|
||||
|
||||
程序会报错:
|
||||
|
||||
20180314_2136.png
|
||||

|
||||
|
||||
**函数的声明提前:**
|
||||
|
||||
@@ -168,7 +168,7 @@
|
||||
|
||||
所以说,下面的例子,会报错:
|
||||
|
||||
20180314_2145.png
|
||||

|
||||
|
||||
### 函数作用域
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ console.log(o);
|
||||
|
||||
控制台输出:
|
||||
|
||||
20180125_1834.png
|
||||

|
||||
|
||||
### 方式二:利用构造函数
|
||||
|
||||
@@ -64,7 +64,7 @@ console.log(o);
|
||||
|
||||
打印结果:
|
||||
|
||||
20180125_1350.png
|
||||

|
||||
|
||||
|
||||
### 方式三:工厂模式
|
||||
@@ -199,7 +199,7 @@ json 采用 `for...in...`进行遍历,和数组的遍历方式不同。如下
|
||||
|
||||
打印结果:
|
||||
|
||||
20180203_1518.png
|
||||

|
||||
|
||||
|
||||
## 类和对象
|
||||
|
||||
@@ -6,8 +6,7 @@
|
||||
|
||||
**javascript的内置对象**:
|
||||
|
||||
20180201_2330.jpg
|
||||
|
||||

|
||||
|
||||
## 内置对象:Date
|
||||
|
||||
@@ -66,7 +65,7 @@ Date对象 有如下方法:
|
||||
|
||||
打印结果举例:
|
||||
|
||||
20180202_1056.png
|
||||

|
||||
|
||||
### 返回距离1970/01/01毫秒数
|
||||
|
||||
@@ -84,7 +83,7 @@ Date对象 有如下方法:
|
||||
|
||||
打印结果:
|
||||
|
||||
20180202_1100.png
|
||||

|
||||
|
||||
|
||||
### 举例:模拟日历
|
||||
@@ -138,7 +137,7 @@ Date对象 有如下方法:
|
||||
|
||||
实现效果:
|
||||
|
||||
20180202_1110.png
|
||||

|
||||
|
||||
|
||||
### 举例:发布会倒计时
|
||||
@@ -210,7 +209,7 @@ Date对象 有如下方法:
|
||||
|
||||
实现效果:
|
||||
|
||||
20180202_1130.gif
|
||||

|
||||
|
||||
|
||||
## 内置对象String
|
||||
@@ -242,7 +241,6 @@ Date对象 有如下方法:
|
||||
|
||||
|
||||
|
||||
|
||||
```javascript
|
||||
var strObj = new String("smyhvae");
|
||||
strObj.aaa = 123;
|
||||
@@ -253,7 +251,7 @@ Date对象 有如下方法:
|
||||
|
||||
打印结果:
|
||||
|
||||
20180202_1351.png
|
||||

|
||||
|
||||
```
|
||||
|
||||
@@ -305,7 +303,7 @@ Date对象 有如下方法:
|
||||
|
||||
打印结果:
|
||||
|
||||
20180202_1401.png
|
||||

|
||||
|
||||
上面这个例子一般不用。一般打印数组和json的时候用索引,打印String不建议用索引。
|
||||
|
||||
@@ -384,7 +382,7 @@ Date对象 有如下方法:
|
||||
|
||||
打印结果:
|
||||
|
||||
20180202_1420.png
|
||||

|
||||
|
||||
### concat:字符串的链接
|
||||
|
||||
@@ -451,7 +449,7 @@ Date对象 有如下方法:
|
||||
|
||||
打印结果:
|
||||
|
||||
20180202_1455.png
|
||||

|
||||
|
||||
2、**replace()**:替换。
|
||||
|
||||
@@ -481,7 +479,7 @@ Date对象 有如下方法:
|
||||
|
||||
打印结果:
|
||||
|
||||
20180202_1503.png
|
||||

|
||||
|
||||
|
||||
### 大小写转换
|
||||
@@ -529,7 +527,7 @@ Date对象 有如下方法:
|
||||
console.log(str.bold())
|
||||
```
|
||||
|
||||
20180202_1536.png
|
||||

|
||||
|
||||
|
||||
## 字符串练习
|
||||
@@ -598,7 +596,7 @@ Date对象 有如下方法:
|
||||
|
||||
打印结果:
|
||||
|
||||
20180202_1540.png
|
||||

|
||||
|
||||
|
||||
## 内置对象 Math
|
||||
@@ -628,7 +626,7 @@ Date对象 有如下方法:
|
||||
console.log(Math.random()); //随机数 0-1
|
||||
```
|
||||
|
||||
20180202_1601.png
|
||||

|
||||
|
||||
|
||||
|
||||
@@ -660,46 +658,7 @@ URI (Uniform ResourceIdentifiers,通用资源标识符)进行编码,以便发
|
||||
|
||||
打印结果:
|
||||
|
||||
20180202_1432.png
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
|
||||
@@ -44,17 +44,12 @@
|
||||
|
||||
当new之后,this会先变成一个空对象,然后通过`this.name = name`来赋值。
|
||||
|
||||
|
||||
|
||||
|
||||
### 构造函数的扩展
|
||||
|
||||
20180306_1633.png
|
||||

|
||||
|
||||
上图中发现,数组、对象、函数也有构造函数,它们的构造函数是Array、Object、funtion。实际开发中,都推荐前面的书写方式。
|
||||
|
||||
|
||||
|
||||
## 原型规则
|
||||
|
||||
原型规则是学习原型链的基础。原型规则有五条,下面来讲解。
|
||||
@@ -65,43 +60,38 @@
|
||||
|
||||
举例:
|
||||
|
||||
20180306_1651.png
|
||||

|
||||
|
||||
|
||||
### 规则2
|
||||
|
||||
所有的**引用类型**(数组、对象、函数),都有一个`_proto_`属性,属性值是一个**普通的对象**。`_proto_`的含义是隐式原型。
|
||||
|
||||
20180306_1656.png
|
||||

|
||||
|
||||
其实,规则2是规则1的特例,只不过,js语法帮我们自动加了 规则2。
|
||||
|
||||
|
||||
### 规则三
|
||||
|
||||
所有的**函数**(不包括数组、对象),都有一个`protype`属性,属性值是一个**普通的对象**。`protype`的含义是**显式原型**。(实例没有这个属性)
|
||||
|
||||
20180306_1659.png
|
||||

|
||||
|
||||
|
||||
### 规则四
|
||||
|
||||
所有的**引用类型**(数组、对象、函数),`_proto_`属性指向它的**构造函数**的`protype`值。
|
||||
|
||||
20180306_1701.png
|
||||
|
||||

|
||||
|
||||
总结:以上四条,要先理解清楚,然后再来看下面的第五条。
|
||||
|
||||
|
||||
### 规则五
|
||||
|
||||
当试图获取一个对象的某个属性时,如果这个对象本身没有这个属性,那么会去它的`_proto_`中寻找(即它的构造函数的`protype`)。
|
||||
|
||||
|
||||
`举例代码1`:
|
||||
|
||||
|
||||
```javascript
|
||||
//创建方法
|
||||
function Foo(name) {
|
||||
@@ -125,7 +115,6 @@
|
||||
|
||||
上方代码中,虽然 alertName 不是 fn 自身的属性,但是会从它的构造函数的`protype`里面找。
|
||||
|
||||
|
||||
**扩展:**遍历循环对象自身的属性
|
||||
|
||||
我们知道,`for ... in`循环可以遍历对象。针对上面的那个fn对象,它自身有两个属性:`name`、`printName`,另外从原型中找到了第三个属性`alertName`。现在,如果我们对fn进行遍历,能遍历到两个属性还是三个属性呢?
|
||||
@@ -142,7 +131,6 @@
|
||||
```
|
||||
|
||||
|
||||
|
||||
## 原型链
|
||||
|
||||
还是拿上面的``举例代码1``举例,如果此时在最后面加一行代码:
|
||||
@@ -161,8 +149,6 @@
|
||||
对象 instanceof 构造函数
|
||||
```
|
||||
|
||||
|
||||
|
||||
`instanceof`的作用:用于判断**引用类型**属于哪个**构造函数**。
|
||||
|
||||
例1:判断一个变量是否为数组: `变量 instanceof Array`
|
||||
@@ -189,13 +175,12 @@
|
||||
|
||||
原型链如下:(重要)
|
||||
|
||||
20180306_1853.png
|
||||

|
||||
|
||||
|
||||
注意,Object这个构造方法的显式原型是null,这是一个特例。
|
||||
|
||||
|
||||
|
||||
## 常见题目
|
||||
|
||||
- 如何准确判断一个变量时数组类型
|
||||
@@ -206,7 +191,6 @@
|
||||
|
||||
- zepto(或其他框架)源码中如何使用原型链
|
||||
|
||||
|
||||
下面分别讲解。
|
||||
|
||||
### 题目一:如何准确判断一个变量时数组类型
|
||||
@@ -222,24 +206,20 @@
|
||||
|
||||
上方代码表明,只能通过 instanceof 来判断是否为数组。而 typeof 的打印结果是 object。
|
||||
|
||||
|
||||
### 题目二:写一个原型链继承的例子
|
||||
|
||||
来看个基础的代码:
|
||||
|
||||
20180306_1931.png
|
||||
|
||||

|
||||
|
||||
上面这个例子是基础,但是,在回答面试官的问题时,不要写上面的例子。要写成下面这个例子:(更贴近实战)
|
||||
|
||||
|
||||
**举例:**写一个封装DOM查询的例子
|
||||
|
||||
> 这个例子有点像 jQuery 操作DOM节点。
|
||||
|
||||
表示这个例子,略难。
|
||||
|
||||
|
||||
### 题目三:描述 new 一个对象的过程
|
||||
|
||||
(1)创建一个新对象
|
||||
@@ -251,19 +231,7 @@
|
||||
(4)返回this
|
||||
|
||||
|
||||
|
||||
|
||||
参考链接:
|
||||
|
||||
- [原型、原型链、继承模式](https://my.oschina.net/u/2600761/blog/1524617)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
```javascript
|
||||
|
||||
```
|
||||
Reference in New Issue
Block a user