我正在浏览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这样的论坛来说,这可能是一个相对容易的问题,但我无法自行解决问题。
谢谢。
高塔姆。
答案 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 =
结果会选择或假。