||
和&&
运算符
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的原型方法。