11arguments关键字
22----
3- 在函数中arguments关键字永远指向传入的所有参数</br >
3+
4+ 在函数中arguments关键字永远指向传入的所有参数
45常用于取到传入参数的数量 arguments.length
56
67rest参数
78----
8- 在函数的参数后加入 ...rest参数 即可以数组的形式返回多余的传入参数</br >
9+
10+ 在函数的参数后加入 ...rest参数 即可以数组的形式返回多余的传入参数
11+
12+ ``` js
913 function foo (a , b , ... rest ) {
1014 console .log (' a = ' + a);
1115 console .log (' b = ' + b);
@@ -23,29 +27,34 @@ rest参数
2327 // a = 1
2428 // b = undefined
2529 // Array []
26-
30+ ```
2731
2832变量提升
2933-----
34+
3035js函数特点
3136会将整个函数体声明的变量‘提升’到顶部
3237但是提升变量的声明并不会提升变量的赋值
3338
39+ ``` js
3440 function foo () {
3541 var x = ' Hello, ' + y;
3642 alert (x);
3743 var y = ' Bob' ;
3844 }
3945
4046 foo ();
47+ ```
4148
4249语句var x = 'Hello, ' + y;并不报错,原因是变量y在稍后申明了。但是alert显示Hello, undefined,说明变量y的值为undefined。
4350
4451命名空间
4552-----
53+
4654全局变量会绑定到` window ` 上 使用相同的全局变量会造成冲突
4755最好的方法是将自己所有的变量和函数全部绑定到一个全局变量中。
4856
57+ ``` js
4958 // 唯一的全局变量MYAPP:
5059 var MYAPP = {};
5160
@@ -57,14 +66,17 @@ js函数特点
5766 MYAPP .foo = function () {
5867 return ' foo' ;
5968 };
69+ ```
6070
6171类似于jq 或者 vue
6272
6373局部作用域
6474-----
75+
6576js的变量作用域实际上是在函数内部 for循环等是不存在局部作用域的
6677在ES6中引入了新的关键字` let ` 用来代替` var ` 可以申明一个块级作用域
6778
79+ ``` js
6880 function foo () {
6981 for (var i= 0 ; i< 100 ; i++ ) {
7082 //
@@ -80,22 +92,25 @@ js的变量作用域实际上是在函数内部 for循环等是不存在局部
8092 }
8193 i += 1 ; // SyntaxError
8294 }
83-
95+ ```
8496
8597常量
8698-----
99+
87100ES6定义新关键字` const ` 来定义常量 于` let ` 一样具有块级作用域
88101
102+ ``` js
89103 const PI = 3.14 ;
90104 PI = 3 ; // 某些浏览器不报错,但是无效果!
91105 PI ; // 3.14
92-
93-
106+ ```
94107
95108方法
96109=====
110+
97111在一个对象中绑定函数,成为这个对象的方法
98112
113+ ``` js
99114 var xiaoming = {
100115 name: ' 小明' ,
101116 birth: 1990 ,
@@ -107,9 +122,11 @@ ES6定义新关键字`const`来定义常量 于`let`一样具有块级作用域
107122
108123 xiaoming .age ; // function xiaoming.age()
109124 xiaoming .age (); // 今年调用是25,明年调用就变成26了
125+ ```
110126
111127this
112128------
129+
113130this在一个方法内部是一个特殊变量,他始终只想当前对象,也就是` xiaoming ` 这个变量
114131
115132this只在` age ` 方法的函数内指向` xiaoming ` 假如在函数内部定义的` this ` 是会报错
@@ -137,6 +154,7 @@ this只在`age`方法的函数内指向`xiaoming`假如在函数内部定义的`
137154
138155apply
139156-----
157+
140158可以利用函数本身的` apply ` 方法 定义` this ` 的指向
141159
142160 function getAge() {
@@ -169,6 +187,7 @@ call()把参数按顺序传入。
169187
170188装饰器
171189-------
190+
172191利用` apply ` 可以动态改变函数的行为
173192
174193JavaScript的所有对象都是动态的,即使内置的函数,我们也可以重新指向新的函数。
@@ -191,6 +210,7 @@ JavaScript的所有对象都是动态的,即使内置的函数,我们也可
191210
192211高阶函数
193212======
213+
194214指的函数可以接收另一个函数作为参数 这种函数被称为高阶函数
195215
196216 function add(x, y, f) {
@@ -199,6 +219,7 @@ JavaScript的所有对象都是动态的,即使内置的函数,我们也可
199219
200220map方法
201221------
222+
202223利用` array ` 的` map() ` 方法可以将函数代入数组 对数组每个元素进行函数运算
203224
204225 function pow(x) {
@@ -210,6 +231,7 @@ map方法
210231
211232reduce方法
212233------
234+
213235Array的` reduce() ` 方法把一个函数作用在这个数组的所有元素上 接受2个参数
214236
215237即把数组中的元素两两按顺序传入reduce()的函数中
@@ -221,8 +243,8 @@ Array的`reduce()`方法把一个函数作用在这个数组的所有元素上
221243 return x + y;
222244 }); // 25
223245
224-
225246tilter()
226247-----
248+
227249用于筛选函数
228- 和map一样把数组所有元素作用于函数 根据返回值` true or false ` 决定保留还是丢弃
250+ 和map一样把数组所有元素作用于函数 根据返回值` true or false ` 决定保留还是丢弃
0 commit comments