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