我经常在下面的许多jQuery插件中看到:
var version= $ && $().jquery.split(/\./);
我可以理解$().jquery
因为它会生成jQuery的版本,但在此之前,为什么只使用$
符号,如果我使用function(a,b)
console.log($);
那么,为什么在这里使用$
?
答案 0 :(得分:2)
在JavaScript中,运算符也会返回已计算的语句。
因为语句是true
,&&
运算符也会返回右侧语句$().jquery.split(/\./);
。
一个更常见的例子是:debug && console.log(msg)
,意味着当debug
为真,返回console.log(msg)
||
会返回第一个评估为true
的语句:"hello" || false; // "hello"
答案 1 :(得分:0)
$ && $()
如果该语句的左侧为false,则不会执行右侧。这可以确保$
在尝试将其作为函数执行之前是真实的。它不是万无一失的,因为如果$
等于除了同样真实的函数之外的其他东西,它仍然会抛出语法错误,例如字符串"foobar"
。
基本上,它只是确保在尝试将$
作为函数执行之前存在version
。如果它不存在,$
将等于未定义或{{1}}