angular.module('myReverseFilterApp', [])
.filter('reverse', function() {
return function(input, uppercase) {
input = input || ''; // declaring the variable
var out = '';
for (var i = 0; i < input.length; i++) {
out = input.charAt(i) + out;
}
// if condition for uppercase
if (uppercase) {
out = out.toUpperCase();
}
return out;//return statement
};
});
代码为AngularJS定义了一个过滤器,它以字符串作为输入,并以相反的顺序和大写字母返回字符串。
我无法理解第4行中输入的代码:
input = input || ''; // declaring the variable
如果任何人能够描述第4行是如何输入的,那将会很有帮助。
答案 0 :(得分:3)
input = input || '';
可替换为以下保护语句,该语句应更易于阅读:
if (!input) {
input = '';
}
input = input || ''
真正意味着,如果input
为falsy
,则默认input
为空字符串。
Javascript中的参数是可选的,如果您在不传递参数的情况下调用过滤器,input
将设置为undefined
。以这种方式保护可以节省垂直空间,但值得注意的是,只有当参数不能为falsey
时,这样的警卫才有效。