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。