摘要:同時(shí)剩余參數(shù)也能和配合使用對象總能正確反映被傳入函數(shù)的參數(shù),而無視剩余參數(shù)的使用擴(kuò)展運(yùn)算符與剩余參數(shù)關(guān)聯(lián)最密切的就是擴(kuò)展運(yùn)算符。
帶參數(shù)默認(rèn)值的函數(shù)
1 es5中模擬函數(shù)默認(rèn)值
function makeRequest(url,timeout,callback){ timeout = timeout || 2000; callback= callback || function(){}; //瑕疵 timeout有效值為0的情況,會導(dǎo)致timeout的值被替換為2000 }
改進(jìn)后的代碼
function makeRequest(url,timeout,callback){ timeout = (typeof timeout !== "undefined") ? timeout : 2000 callback= (typeof callback !== "undefined") ? callback : function(){} //瑕疵 書寫了過多的代碼 }
2 es6能更容易為參數(shù)提供默認(rèn)值,它使用了初始化的形式,以便在參數(shù)未被正式傳遞進(jìn)來時(shí)使用。
function makeRequest(url,timeout=2000,callback=function(){})
只有在未傳遞參數(shù),或明確將第二個參數(shù)指定為undefined時(shí),timeout的默認(rèn)值才會被使用,即便傳遞null也不會使用timeout的默認(rèn)值
使用不具名參數(shù)先來看下es5中的不具名參數(shù)的實(shí)現(xiàn)
function pick(object){ let result = Object.create(null); //從第二個參數(shù)開始處理 for(let i=1,len = arguments.length;i為了解決上述問題,es6引入剩余參數(shù)來解決問題
剩余參數(shù)由三個點(diǎn)(...)與一個緊跟著的具名參數(shù)指定,它會是包含傳遞給函數(shù)的
其余參數(shù)的一個數(shù)組。function pick(object,...keys){ let result = Object.create(null); //從第二個參數(shù)開始處理 for(let i=0,len = keys.length;i當(dāng)然剩余參數(shù)有些限制條件
1 一個函數(shù)只能有一個剩余參數(shù),并且必須被放在最后
2 剩余參數(shù)不能再對象字面量的setter屬性中使用。因?yàn)閷ο笞置媪康膕etter被限定只能使用單個參數(shù)。同時(shí)剩余參數(shù)也能和arguments配合使用
擴(kuò)展運(yùn)算符
arguments對象總能正確反映被傳入函數(shù)的參數(shù),而無視剩余參數(shù)的使用與剩余參數(shù)關(guān)聯(lián)最密切的就是擴(kuò)展運(yùn)算符。剩余參數(shù)允許你把多個獨(dú)立的參數(shù)合并到一個數(shù)組,而擴(kuò)展運(yùn)算符則允許將一個數(shù)組分隔,并將各個項(xiàng)作為分離的參數(shù)傳遞給函數(shù)
es6前的寫法
let values = [25,50,75,100] console.log(Math.max.apply(Math,values))用擴(kuò)展運(yùn)算符的寫法
let values = [25,50,75,100] console.log(Math.max(...values))--未完待續(xù)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/89031.html
摘要:的翻譯文檔由的維護(hù)很多人說,阮老師已經(jīng)有一本關(guān)于的書了入門,覺得看看這本書就足夠了。前端的異步解決方案之和異步編程模式在前端開發(fā)過程中,顯得越來越重要。為了讓編程更美好,我們就需要引入來降低異步編程的復(fù)雜性。 JavaScript Promise 迷你書(中文版) 超詳細(xì)介紹promise的gitbook,看完再不會promise...... 本書的目的是以目前還在制定中的ECMASc...
摘要:在繼承的構(gòu)造函數(shù)中,我們必須如上面的例子那么調(diào)用一次方法,它表示構(gòu)造函數(shù)的繼承,與中利用繼承構(gòu)造函數(shù)是一樣的功能。 showImg(https://segmentfault.com/img/remote/1460000009078532); 在實(shí)際開發(fā)中,ES6已經(jīng)非常普及了。掌握ES6的知識變成了一種必須。盡管我們在使用時(shí)仍然需要經(jīng)過babel編譯。 ES6徹底改變了前端的編碼風(fēng)格,...
摘要:關(guān)于的學(xué)習(xí)總結(jié)昨天寫了第一篇,主要是關(guān)于變量聲明關(guān)鍵字和,新增類型以及模板字符串,今天準(zhǔn)備寫第二篇,里面的函數(shù)部分,新增了箭頭函數(shù),參數(shù)以及參數(shù)默認(rèn)值。,這次我們在調(diào)用函數(shù)大的時(shí)候,兩個參數(shù)全部傳遞了值,因此返回。 關(guān)于ES6的學(xué)習(xí)總結(jié),昨天寫了第一篇,主要是關(guān)于變量聲明關(guān)鍵字let和const,新增類型Symbol以及模板字符串,今天準(zhǔn)備寫第二篇,ES6里面的函數(shù)部分,ES6新增了箭...
摘要:前言在理想的狀態(tài)下,你可以在深入了解之前了解和開發(fā)的所有知識。繼承另一個類的類,通常稱為類或類,而正在擴(kuò)展的類稱為類或類。這種類型的組件稱為無狀態(tài)功能組件。在你有足夠的信心構(gòu)建用戶界面之后,最好學(xué)習(xí)。 原文地址:JavaScript Basics Before You Learn React 原文作者: Nathan Sebhastian 寫在前面 為了不浪費(fèi)大家的寶貴時(shí)間,在開...
摘要:入門一前言由于最近本人在學(xué)習(xí),做一些筆記能夠更好的熟悉,就趁此機(jī)會來寫一篇關(guān)于的新人學(xué)習(xí)摘要吧。的作用域與命令相同只在聲明所在的塊級作用域內(nèi)有效。塊級作用域新增方式和實(shí)際上為新增了塊級作用域。同時(shí),函數(shù)聲明還會提升到所在的塊級作用域的頭部。 ECMAScript6/ES6 入門 一、前言 由于最近本人在學(xué)習(xí)ES6,做一些筆記能夠更好的熟悉,就趁此機(jī)會來寫一篇關(guān)于ES6的新人學(xué)習(xí)摘要吧。...
閱讀 2025·2023-04-25 14:50
閱讀 2907·2021-11-17 09:33
閱讀 2611·2019-08-30 13:07
閱讀 2838·2019-08-29 16:57
閱讀 908·2019-08-29 15:26
閱讀 3540·2019-08-29 13:08
閱讀 1990·2019-08-29 12:32
閱讀 3383·2019-08-26 13:57