AngularJS/Javascript 需要三元运算符代码解释
AngularJS/Javascript ternary operator code explanation required
我在 Angular Material 网站上看到了这段代码:
function querySearch (query) {
var results = query ? self.states.filter( createFilterFor(query) ) : self.states,
deferred;
if (self.simulateQuery) {
deferred = $q.defer();
$timeout(function () { deferred.resolve( results ); }, Math.random() * 1000, false);
return deferred.promise;
} else {
return results;
}
}
谁能解释一下这里发生了什么?
如果查询不为空,我们调用过滤器,否则我们 return 状态和那是什么 ",deffered" 部分?
defered 尚未创建,我们也不能 return 多个值!
那么这段代码的解释是什么?
代码在这里:
https://material.angularjs.org/latest/demo/autocomplete
第一个(基本用法)
这就是三进制不利于可读性的原因。该逗号与三元无关,因为它附加到变量声明。
所有这一切都在声明(未定义的)变量 deferred
。
您可以使用逗号语法一次声明多个变量,如下所示:
var x = 4,
y = 7,
z = Math.random();
我在 Angular Material 网站上看到了这段代码:
function querySearch (query) {
var results = query ? self.states.filter( createFilterFor(query) ) : self.states,
deferred;
if (self.simulateQuery) {
deferred = $q.defer();
$timeout(function () { deferred.resolve( results ); }, Math.random() * 1000, false);
return deferred.promise;
} else {
return results;
}
}
谁能解释一下这里发生了什么?
如果查询不为空,我们调用过滤器,否则我们 return 状态和那是什么 ",deffered" 部分?
defered 尚未创建,我们也不能 return 多个值!
那么这段代码的解释是什么?
代码在这里: https://material.angularjs.org/latest/demo/autocomplete 第一个(基本用法)
这就是三进制不利于可读性的原因。该逗号与三元无关,因为它附加到变量声明。
所有这一切都在声明(未定义的)变量 deferred
。
您可以使用逗号语法一次声明多个变量,如下所示:
var x = 4,
y = 7,
z = Math.random();