函式引數預設值
function welcome(x, y = 'world')
welcome('hello') // hello world
welcome('hello', 'china') // hello china
welcome('hello', '') // hello
es6 允許為函式的引數設定預設值,即直接寫在引數定義的後面。定義了預設值的引數,應該是函式的尾引數
let x = 99;
function foo(p = x + 1)
foo() // 100
x = 100;
foo() // 101
乙個容易忽略的地方是,引數預設值不是傳值的,而是每次都重新計算預設值表示式的值。也就是說,引數預設值是惰性求值的。上面**中,引數p
的預設值是x + 1
。這時,每次呼叫函式foo
,都會重新計算x + 1
,而不是預設p
等於 100。
箭頭函式
es6 允許使用「箭頭」(=>
)定義函式
var f = v => v;
// 等同於
var f = function (v) ;
var sum = (num1, num2) => num1 + num2;
// 等同於
var sum = function(num1, num2) ;
箭頭函式有幾個使用注意點。
(1)函式體內的this
物件,就是定義時所在的物件,而不是使用時所在的物件。
(2)不可以當作建構函式,也就是說,不可以使用new
命令,否則會丟擲乙個錯誤。
(3)不可以使用arguments
物件,該物件在函式體內不存在。如果要用,可以用 rest 引數代替。
(4)不可以使用yield
命令,因此箭頭函式不能用作 generator 函式。
ES6之箭頭函式
一 基本用法 es6 允許使用 箭頭 定義函式。var f 5 等同於 var f function var sum num1,num2 num1 num2 等同於 var sum function num1,num2 如果箭頭函式的 塊部分多於一條語句,就要使用大括號將它們括起來,並且使用retu...
Es6之函式優化
函式引數預設值 在es6以前,我們無法給乙個函式引數設定預設值,只能採用變通寫法 function add a b 傳乙個引數 console.log add 10 現在可以這麼寫 function add a b 1 傳乙個引數 console.log add 10 箭頭函式 es6中定義函式的簡...
ES6之 函式(五)
rest 引數 變數名 報錯 function f a,b,c 箭頭函式 箭頭函式的特點 案例 案例 1 varf v v 上面的箭頭函式等同於 varf function v letfun function fun 案例 2 沒有形參,並且函式體只有一條語句 letfun1 console.log...