from表單序列化&JQuery原始碼中兩個小扣好的意義&StringUtils的用法

來源:互聯網
上載者:User

$('#form').serializeArray()

 

serializeArray()
方法序列化表單元素(類似.serialize() 方法),

 

返回 JSON 資料結構資料。 注意:此方法返回的是 JSON 對象而非 JSON 字串。

/*************************我只是分割線罷了*****************************************/

如果大家看jquery的sourcecode就知道一開始就有兩對小括弧,是什麼意思呢! 真的是比較困惑, 這麼神奇的代碼,什麼意思啊?

我們先看看jQuery一開始是怎麼寫的:

(function(){    
// jquery 代碼
})();

它是由什麼組成呢? 有一個匿名函數(函數沒有名字),此匿名函數被一對小括弧包裹著,這對小括弧右邊還有一對小括弧.
我們再看常用一般函數定義方式.

//函數定義
function func1(){
alert("hello,world");
}
//調用函數
func1();

那麼這兩句話目的很明顯就是要彈出一個"helloworld"的對話方塊,那麼我們可不可以合并成一句話,
也同樣能達到這樣的效果,當然是可以的.

(function(){
alert("hello,world"
); })();

函數名稱func1都去掉了, 在函數外面加了一對小括弧.這和jquery是一樣的啊! 可以看出最後面一對小括弧語義就是"調用此匿名函數",那麼包裹在匿名函數外面的一對小括弧可以去掉嗎?
變成如下的樣子

function (){
alert("hello,world");
}();

要回答這個問題,先看看javascript對錶達式的評估.

dd= aa+ cc*bb javascript會先評估cc*bb,然後才會評估aa+,這是因為地球人都知道的事情,乘運算(*)符優先順序高於加(+) 同樣如果去掉這對小括弧的話, 我們可以假想一下其運算式的評估過程, javascript會先評估最後面小括弧,而不是先評估匿名函數了,那麼最後面的小括弧是什麼語義呢! 僅當作一般運算子去處理,並不是"此處存在函數調用"的這樣一個語義, 因為在這之前並不知道有匿名函數存在(還沒有評估呢),所以在匿名函數外面加上一對小括弧的話,javascript對其評估的順序就變了,
所以答案很明顯,不可以去掉匿名函數外面的一對小括弧,否則其評估就會失敗,導致語法錯誤.

/*************************我只是分割線罷了*****************************************/

StringUtils 方法(null安全)

StringUtils 方法的操作對象是 java.lang.String 類型的對象,是 JDK 提供的 String 類型操作方法的補充,並且是 null 安全的(即如果輸入參數 String 為 null 則不會拋出NullPointerException ,而是做了相應處理,例如,如果輸入為 null 則返回也是 null 等,具體可以查看原始碼)。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.