## 函數擴展
> 1.函數參數的默認值
2.rest 參數
3.name 屬性
4.箭頭函數
### 函數參數的默認值
~~~
function log(x, y = 'World') {
console.log(x, y);
}
log('Hello') // Hello World
log('Hello', 'China') // Hello China
log('Hello', '') // Hello
~~~
### rest 參數
~~~
function add(...values) {
let sum = 0;
for (var val of values) {
sum += val;
}
return sum;
}
add(2, 5, 3) // 10
~~~
### name屬性
~~~
function foo() {}
foo.name // "foo"
~~~
### 箭頭函數
~~~
var f = v => v;
// 等同于
var f = function (v) {
return v;
};
var f = () => 5;
// 等同于
var f = function () { return 5 };
var sum = (num1, num2) => num1 + num2;
// 等同于
var sum = function(num1, num2) {
return num1 + num2;
};
~~~
* 函數體內的this對象,就是定義時所在的對象,而不是使用時所在的對象。
* 不可以當作構造函數,也就是說,不可以使用new命令,否則會拋出一個錯誤。
* 不可以使用arguments對象,該對象在函數體內不存在。如果要用,可以用 rest 參數代替。
### 課后習題
1.下面的代碼有什么問題,指出并修改
~~~
function a (...b,c,d) {
// code..
}
~~~
~~~
function a (x=2,x,y) {
// code ...
}
~~~
2.下面代碼執行后的結果是什么?
~~~
var a = function b () {}
console.log(a.name);
~~~
~~~
var s = [1,2,3,4, ...[5,6,7,8]];
console.log(s);
~~~
~~~
var s = (x) => x+1;
console.log(s(2));
~~~
- Less
- 課程規劃
- Less概述
- 變量
- 混合
- 嵌套
- 繼承
- 導入
- 函數
- 其他
- 實戰
- ES6
- 課程規劃
- ES6概述
- let和const命令
- 變量的解構賦值
- 字符串擴展
- 函數擴展
- 數組擴展
- Set和Map數據結構
- Symbol
- Generator 函數
- Promise對象
- Class語法
- Module 的語法
- ES7和ES8
- 實戰
- VUE
- 課程規劃
- vue概述
- vue實例
- 模版語法
- 計算屬性和偵聽器
- Class和Style的綁定
- 條件渲染
- 列表渲染
- 事件處理
- 表單輸入綁定
- 組件基礎
- 過渡和動畫
- 自定義指令
- 過濾器
- 響應式原理
- 實戰課程
- Node
- 課程規劃
- 課程概述
- node入門實例
- 模塊系統
- 回調函數
- 全局對象
- 常用模塊介紹
- 常用模塊介紹-1
- 常用模塊介紹-2
- 常用模塊介紹-3
- npm使用
- express的使用
- express的使用-1
- webpack基礎
- 實戰
- 微信小程序
- 課程規劃
- 課程概述
- 基本配置和生命周期
- wxml模版
- wxss
- wxs
- 組件
- 微信API
- 自定義組件開發
- 實戰小程序
- Element
- 課程規劃
- 課程概述
- 特性介紹
- 組件介紹-基礎組件
- 組件介紹-表單組件
- 組件介紹-數據展示組件
- 組件介紹-提示組件
- 組件介紹-導航組件
- 組件介紹-其他組件
- 綜合案例