1. 規則
function ff(x, y = 'world')
console.log(ff('hello')); // hello world
console.log(ff('hello', 'china')); // hello china
console.log(ff('hello', '')); // hello
function foo(x = 5)
(function (a) {}).length // 1
(function (a = 5) {}).length // 0
(function (a, b, c = 5) {}).length // 2
var x = 1;
function f(x, y = x)
f(2) // 2
let x = 1;
function f(y = x)
f() // 1
2. 函式引數 解構賦值function foo()
foo({}) // 10 5
foo() // 1 5
foo() // typeerror: cannot read property 'x' of undefined
function foo( = {})
foo({}) // 10 5
foo() // 1 5
foo() // 1 5
function foo()
foo({}) // 10 undefined
foo() // 1 undefined
foo() // typeerror: cannot read property 'x' of undefined
// 寫法一
function m1( = {})
// 寫法二
function m2( = )
// 函式沒有引數的情況
m1() // [0, 0]
m2() // [0, 0]
// x 和 y 都有值的情況
m1() // [3, 8]
m2() // [3, 8]
// x 有值,y 無值的情況
m1() // [3, 0]
m2() // [3, undefined]
// x 和 y 都無值的情況
m1({}) // [0, 0];
m2({}) // [undefined, undefined]
m1() // [0, 0]
m2() // [undefined, undefined]
// 寫法三
function m3( = {})
// 寫法四
function m4( = )
m1() // [1, 0]
m2() // [0, 0]
3. 函式引數預設值 的應用function throwifmissing()
function foo(mustbeprovided = throwifmissing())
foo()
// error: missing parameter
function foo(optional = undefined)
function add(...values)
return sum;
}add(2, 5, 3) // 10
add(2, 5, 3, 5) // 15
對比 es5 中的arguments
:
1. 箭頭函式 語法
var sum = (num1, num2) =>
var f = v => v;
// 等同於
var f = function(v) ;
2. 箭頭函式 this 指向
var a = 2;
var obj = ;
var fn1 = (a) => ;
var fn2 = function(a) ;
fn1.call(obj); // 2
fn2.call(obj); // 100
3. 箭頭函式 的約束
const test = function baz() {};
console.log(test.name); // es5輸出:""
console.log(test.name); // es6輸出:"baz"
// 方案一:
'use strict';
function dosomething(a, b = a)
// 方案二:
const dosomething = (function () ;
}());
ES6 函式擴充套件
函式在js裡是相當重要的一部分了,es6裡也新增了一些函式方法,來看一下 test hello hello world test hello kill hello kill es6增加了函式引數預設值,可以直接在宣告引數的同時賦預設值,但是也可以後面重新賦值 test2 kill 括號內有引數x時,...
ES6函式擴充套件
函式引數的預設值 在es5中,我們想給函式乙個預設值,需要這樣寫 function add x,y 在es6中 可以這樣寫 function add x,y ss add dd ddss add ss dd ssdd add dd dd我們只需要在引數上直接寫上我們想要的預設值就好了。當我們給函式乙...
ES6函式擴充套件
function fun a,b world fun hello 輸出helloworld let a aa function fun a,b a fun bb function fun arg fun 1,2,3,4,1 語法 param param 對應函式 function 沒有引數 乙個引數...