在編寫函式的時候,傳參有時會帶來一些問題;
比如,有兩個引數,但是我傳參的時候只傳了乙個怎麼辦呢? 或者我乙個都沒有傳怎麼辦呢?
通常來說,我們都會這麼處理一下:
function person (name)
但是如果引數很多呢? name、***、age…… 等等; 總不能每乙個都這麼寫吧,多麻煩啊!所以,最怕麻煩的程式設計師們發功了!
es6 函式預設值:
function person (name = 'none')
是不是很簡單!當然了,簡單歸簡單,還有一些要注意的地方;
新增預設值後預設轉化為嚴格模式,就是『use strict』;變成嚴格模式後有啥影響呢? arguments 和 引數不實時映**!
function max (n = 10, m)
max(1,2);
預設值都是惰性求值,就是說 只要傳參了,我管你預設值是天王老子我瞧都不瞧你一眼;
function getval()
function add(n, m = getval())
add(1,2); // 3
add(1); // '我是天王老子' 667
還要注意暫時性死區,tdz同樣適用;
function a (m , n = m)
a(1);
function add (m = n, n)
add(1,2); // 3
add(undefined,1); //報錯; n is not defined
ES6 函式預設值
1 es6之前,函式如果需要預設值,需要在函式內額外處理,如 function log x,y log hello hello world log hello es6 hello es6 log hello hello world上述 中第二行,檢查y引數是否有值,如果沒有,將其賦值為預設值 wor...
方法引數 預設值 ES6 函式的預設值
es6 之前,不能直接為函式的引數指定預設值,只能採用變通的方法。function log x,y log hello hello world log hello 你好 hello china 這裡可以看到,檢查函式log的引數y有沒有賦值,如果沒有,則指定預設值為 哈嘍 這種寫法的缺點在於,如果引...
ES6 函式引數的預設值
在es6之前,不能直接為函式的引數指定預設值,只能採取變通的方法。function log x,y log kkk kkk world這種寫法的缺點在於 如果引數y賦值了,但是對應的布林值為false,則該賦值不起作用。如果在呼叫函式的時候,傳入的y引數是乙個空字串,那麼y就會被修改為預設值。避免這...