推特bootstrap,三元运算符。

Twitter bootstrap , ternary operator .

我正在浏览 Twitter bootstrap 源代码,作为一个 Jquery 新手,我对以下行有点困惑:

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

button.js 源代码:github

现在我了解了 typeof 检查的内容以及 && 的作用,

这是我的理解,typeof 检查给定变量的类型,&& 是我在 if 语句中经常看到的东西,像这样:

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

但不知何故我无法理解 button.js 插件中的这一行,这让我很困惑。

源代码中的这一行:The Line

它是某种 if 条件还是什么?

我知道对于像 SO 这样的论坛来说这可能是一个相对简单的问题,但我无法自己将这些问题放在一起。

谢谢。

高塔姆。

意思是:如果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 设计模式有很好的概述。

typeof option == 'object' && option

如果变量选项被定义为对象类型并为其自身分配了一个值,则上一行将 return 选项。

var options =

将选择 option 或 false 作为结果。