js獲取input的值 javascript如何獲取function的形參?
javascript如何獲取function的形參?作為一個(gè)每天和JavaScript打交道的前端開發(fā)人員,我可以 忍不住回答一波問題,雖然我知道這種問題沒人看。既然題目強(qiáng)調(diào) "形式參數(shù) ",我覺得回
javascript如何獲取function的形參?
作為一個(gè)每天和JavaScript打交道的前端開發(fā)人員,我可以 忍不住回答一波問題,雖然我知道這種問題沒人看。
既然題目強(qiáng)調(diào) "形式參數(shù) ",我覺得回答說論據(jù)是用的肯定是不對(duì)的。參數(shù)是 "實(shí)際參數(shù) "。
聲明形式參數(shù):函數(shù)時(shí)指定的參數(shù)聲明列表。調(diào)用自變量:函數(shù)時(shí)傳入的參數(shù)列表。
有了以上概念,讓 讓我們看看這個(gè)主題。;的問題javascript如何獲取函數(shù)的形參?"。其實(shí)題主是想做類似反射的事情,給一個(gè)函數(shù)變量,然后在定義函數(shù)的時(shí)候得到一個(gè)參數(shù)聲明列表。
首先,如果主題沒有 t很想得到每個(gè)參數(shù)的詳細(xì)信息,但是只需要參數(shù)的個(gè)數(shù),那么就簡(jiǎn)單的使用length屬性。這個(gè)方法也適用于arrow函數(shù)。
如果題主真的想得到每個(gè)參數(shù)的詳細(xì)信息,那就更有意思了,因?yàn)槟壳斑€沒有直接在JavaScript中實(shí)現(xiàn)這個(gè)操作的方法,甚至最新的Reflect都可以 我?guī)筒簧厦?。幸運(yùn)的是,函數(shù) s toString方法可以返回函數(shù)定義為字符串時(shí)的代碼,這提供了一個(gè)突破口(九曹),參數(shù)列表可以從函數(shù)的定義中自己解析出來。
這也是在流行的框架AngularJS中實(shí)現(xiàn)形式參數(shù)依賴注入(DI)的關(guān)鍵。下面直接是AngularJS中的相關(guān)代碼片段。
從代碼中可以看到,這個(gè)方法調(diào)用toString來獲取函數(shù)的定義,并使用正則化來移除注釋和提取參數(shù)列表。該實(shí)現(xiàn)還具有處理箭頭函數(shù)的能力。
可以看出,這種方法是相當(dāng)高效和兼容的。即使參數(shù)中有默認(rèn)值、解構(gòu)、變量參數(shù)等ES6的新語法,也不會(huì)出現(xiàn)錯(cuò)誤,但不會(huì)給出進(jìn)一步的信息。
如果需要提取參數(shù)的默認(rèn)值,進(jìn)行分析解構(gòu),或者判斷是否為可變參數(shù),則需要進(jìn)一步逐一分析,這里不做討論。然而,一個(gè)相當(dāng)簡(jiǎn)單的方法是使用JavaScript解析器,如
js在一個(gè)文本輸入框內(nèi)輸入幾個(gè)數(shù)字,并用逗號(hào)隔開,點(diǎn)擊按鈕后顯示求和答案的網(wǎng)頁?
獲取文本框的值,然后可以用正則匹配的方法獲取里面的數(shù)字,循環(huán)相加。