手寫前端 serialize

2022-03-02 10:11:17 字數 748 閱讀 7368

在jquery中,寫下我們很方便序列化我們的表單,比如說:

window.onload=function()
但是jquery庫是沉重的,那麼如何手寫乙個呢?

思想:首先無論如何你都要去遍歷form裡面的,每乙個元素如input:text radio select checkbox,獲取到name,然後value,然後取得資料。

第二我們得排除一些元素如type為:file,submit,button,image,reset,undefined。

object.prototype.serialize = function()else

}res.push(encodeuricomponent(current.name) + "=" + encodeuricomponent(optionvalue));}}

break;

//單選,核取方塊

case "radio":

case "checkbox":

//這裡有個取巧 的寫法,這裡的判斷是跟下面的default相互對應。

//如果放在其他地方,則需要額外的判斷取值

if(!current.checked) break;

default:

//一般表單控制項處理

if(current.name && current.name.length)}}

return res.join("&");

}

前端手寫系列 手寫reduce函式

reduce函式常用於對陣列,reduce函式接受3個引數 被迭代的陣列 用於迭代計算的函式 迭代的初始值 注意點 如果沒有提供初始值時,會預設使用陣列的第乙個元素來作為初始值 function reduce arr,callback,initialval 如果沒有將initialval傳遞給該函式...

前端高階 手寫PromiseA

promisea function 成功時執行的方法 varresolve function resolve value 失敗時執行的方法 varreject function reject value 立即執行執行器函式 如果函式報錯,則promise狀態變為失敗 trycatch err pro...

前端面試(手寫)

手寫篇 手寫 instenceof 原生的 instanceof console.log instanceof array true console.log instanceof array false 手寫 myinstanceof function myinstanceof left,right...