||
和&&
運算符
Java Script中的||
和&&
兩個運算符,與其他語言相比略有不同,其符合如下規則:
-
||
表示,如果第一個元素可以轉換為true,則返回第一個元
素的值,否則查詢第二個元素的值。如果多個||
一起用,則按順
序優先級判斷。 -
&&
則相反,如果第一個元素可以轉換為false,才返回第一
個元素的值,否則返回第二個元素的值,多個&&
一起用時,也是
按順序優先級判斷。
說得嚴謹一些就是:
-
a && b&& c&&d
:返回第一個可轉換為false的元素值。 -
a||b||c||d
:返回第一個可轉換為true的元素值。
上述運算符的轉換規則如下:
?對象為true
?非零數字為true
?非空字符串為true
?其他為false
立即調用的函數表達式
在JS里,function
在定義的時候就可以通過在后面加一個小括號的形式立即進行調用。比如:
(function () { /* code */ } ()); // 推薦使用這個
(function () { /* code */ })(); // 這個也是可以用的
(function () { /* code */ } (1)); // 傳入參數1
(function () { /* code */ })(2); // 傳入參數2
Bootstrap的所有的JS插件都使用了這個模式。比如在alert.js
文件里有以下代碼:
+function ($) {
"use strict";
}(jQuery);
這個文件的意思是聲明一個function,然后立即執行,并且在執行的時候傳入jQuery對象作為參數。這么做的好處是,此時function內部的$已經是局部變量了,不會再受外部作用域的影響了。
function前面的+號和分號的功能是一樣的,主要是防止定義了不符合規定的代碼。比如上面的這段代碼若沒加+號,則代碼連接在一起執行就會出錯。這樣就消除了出錯的可能性。改成這樣也行:
;function ($) {
"use strict";
}(jQuery);
原型
在Bootstrap的JS插件里,所有的插件都是利用了類似下面的代碼:
Alert.prototype.close = function (e) {
/*...*/
}
上面的代碼就是在Alert函數上定義一個名為close的原型方法。