`input = input ||是什么意思? ''`在AngularJS中自定义自己的过滤器

时间:2015-10-20 08:39:52

标签: angularjs

我看到在自定义我们自己的过滤器时,我们需要将数据作为过滤器函数中的过滤输入,但在函数内部我看到如下: input = input || ' '

代码

angular.module('myReverseFilterApp', []).filter('reverse', function() {
    return function(input, uppercase) {
        input = input || '';
        var out = "";
        for (var i = 0; i < input.length; i++) {
            out = input.charAt(i) + out;
        } // conditional based on optional argument 
        if (uppercase) {
            out = out.toUpperCase();
        }
        return out;
    };
})
.controller('MyController', ['$scope', function($scope) {
    $scope.greeting = 'hello';
}]);

2 个答案:

答案 0 :(得分:0)

关于这个问题的一点是,如果输入没有在过滤器中作为参数给出的值,则使用空字符串初始化输入值。 所以基本上如果您从return function(input, uppercase) {输入的值没有值(例如'dog'),则输入将为空(它将采用空字符串值''。 所以||是OR operator。这意味着如果输入为undefinednull0,则会输入第二个值。 如果您还有其他问题,请拍摄:D。

答案 1 :(得分:0)

如果值未定义或为null,则设置输入变量的默认值。

您将注意到input.charAt(i),如果输入的值为null或未定义,则会发生引用错误,因为charAt方法是正确字符串的方法。