下面代码的第4行是如何获取输入的

时间:2017-07-18 12:22:50

标签: javascript angularjs

  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行是如何输入的,那将会很有帮助。

1 个答案:

答案 0 :(得分:3)

input = input || '';可替换为以下保护语句,该语句应更易于阅读:

if (!input) {
  input = '';
}

input = input || ''真正意味着,如果inputfalsy,则默认input为空字符串。

Javascript中的参数是可选的,如果您在不传递参数的情况下调用过滤器,input将设置为undefined。以这种方式保护可以节省垂直空间,但值得注意的是,只有当参数不能为falsey时,这样的警卫才有效。