Twitter引导程序,三元运算符。

时间:2015-01-05 09:58:36

标签: jquery twitter-bootstrap-3

我正在浏览twitter bootstrap源代码,作为Jquery新手,我对以下几行感到困惑:

var options = typeof option == 'object' && option

button.js源代码:github

现在我明白了什么类型的检查,我也是什么&&确实,

继承了我的理解,类型检查给定变量的类型和&&这是我在if语句中经常看到的东西,如下所示:

if( a === "ok" && b=true ){ console.log('condition passed'); }

但不知怎的,我无法理解button.js插件中的这一行,这完全让我感到困惑。

源代码中的这一行:The Line

是某种if条件还是某种东西?

我知道对于像SO这样的论坛来说,这可能是一个相对容易的问题,但我无法自行解决问题。

谢谢。

高塔姆。

2 个答案:

答案 0 :(得分:1)

这意味着:如果option是对象,那么option应该分配给options。如果不是这种情况,则options将为false

原始陈述是:

var options = typeof option == 'object' && object;

这相当于:

var options = typeof option == 'object' ? object : false;

我们赢了七个角色:)

利用JavaScript的逻辑运算(以及 truthy-falsy 属性)是很常见的,因为它提供了一些简洁且高度可用的模式。

PS:我建议阅读this book,它对JavaScript设计模式有一个很好的概述。

答案 1 :(得分:1)

typeof option == 'object' && option

如果变量选项被定义为对象类型并且赋值给自己,则前一行将返回该选项。

var options =

结果会选择或假。