我在角度js過濾器中看到以下行。它有什麼作用?ORring input with''
input = input || '';
https://docs.angularjs.org/guide/filter
我在角度js過濾器中看到以下行。它有什麼作用?ORring input with''
input = input || '';
https://docs.angularjs.org/guide/filter
這是一個常用的JavaScript構造函數,它具有函數中未指定參數的默認值。
這相當於:
if (!input) {
input = ' ';
}
或者
input = input ? input : ' ';
或者更詳細:
if (input === null || input === undefined || input === 0 || input === "" || input === false) {
input = ' ';
}
因此,在這種情況下,萬一input
分配空間是一個空字符串或未定義/指定。
在Angularjs,這syntaxe被檢查,如果該輸入是空的。如果input
爲空,則該值將是「否則它將是input
。
此語法可以避免null
或undefined
值。從角DOC(可能是在你看到這句法的例子)
例子:
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';
}]);
它基本上把一個空字符串,而不是一個null
值,避免空,如果你不鍵入任何東西示例程序。
感謝您的回答。我看到了先前的帖子,這就是爲什麼我標記它:) – dlearner
它是刪除輸入中的空白嗎? – dlearner
這是一個邏輯「或」 - 所以我猜想它確保'輸入'是給定的輸入,或者如果給定的輸入是NULL,它至少使輸入'string.Empty'而不是'NULL' 。 – St0fF