深入理解Bootstrap
上QQ阅读APP看书,第一时间看更新

1.6 JavaScript基本语法

本节和上节的CSS语法类似,主要介绍JavaScript的基本用法。理解这些用法以后,就可以按照Bootstrap的开发规范去开发自己的各种插件了。

1.6.1 ||和&&运算符

Java Script中的||和&&两个运算符,与其他语言相比略有不同,其符合如下规则:

❏||表示,如果第一个元素可以转换为true,则返回第一个元素的值,否则查询第二个元素的值。如果多个||一起用,则按顺序优先级判断。

❏&&则相反,如果第一个元素可以转换为false,才返回第一个元素的值,否则返回第二个元素的值,多个&&一起用时,也是按顺序优先级判断。

说得严谨一些就是:

❏a && b&& c&&d:返回第一个可转换为false的元素值。

❏a||b||c||d:返回第一个可转换为true的元素值。

上述运算符的转换规则如下:

❏对象为true

❏非零数字为true

❏非空字符串为true

❏其他为false

1.6.2 立即调用的函数表达式

在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);

关于立即执行的函数表达式,请访问笔者的博客“深入理解JavaScript系列”里的第4篇,地址如下:http://www.cnblogs.com/TomXu/archive/2011/12/31/2289423.html

1.6.3 原型

在Bootstrap的JS插件里,所有的插件都是利用了类似下面的代码:

Alert.prototype.close = function (e) {
    /*...*/
}

上面的代码就是在Alert函数上定义一个名为close的原型方法。至于什么叫原型,原型有什么好处,这里我们不会深入讲解,只是举一个例子,简单理解一下就好。

var Calculator = function () {};
Calculator.prototype.add = function (a, b) {
    return a + b;
}
var cal = new Calculator();
var sum = cal.add(1, 2);

由于这些内容不是本书的重点,所以这里只需要知道Calculator的实例能调用原型上的add方法就可以了(就像Java和C#里定义的普通方法一样)。

关于原型和原型链的详细内容,请访问笔者的博客“深入理解JavaScript系列”里的第5篇,地址如下:http://www.cnblogs.com/TomXu/archive/2012/01/05/2305453.html