Javascript如果变量未定义则使用另一个

时间:2014-08-12 12:13:13

标签: javascript angularjs

我有两个范围$scope.job$scope.jobs

我有var job;

如果$scope.jobundefined我希望$scope.jobsjob下工作,那么var job = $scope.jobs$scope.job,但如果定义if ( $scope.job ) { var job = $scope.job; } else { var job = $scope.jobs; } 我我也希望将它写入该变量。

{{1}}

但是用简写

3 个答案:

答案 0 :(得分:1)

我想留下简短的评论,但现在我明白如果我解释会更好。

var job = $scope.job || $scope.jobs;

undefined == false; // prints true

这就是它的运作方式。

If $scope.job == undefined == false || $scope.jobs == {...} == true.

如果作业未定义 - 它将为false,因此or操作数返回true值。

答案 1 :(得分:0)

所以,如果我理解你的意思:

if ($scope.job)
  var job = $scope.job;
else
{
  var job = $scope.jobs;
  $scope.job = $scope.jobs;
}

嗯,那么简写:

var job = $scope.job = $scope.job || $scope.jobs;

答案 2 :(得分:0)

或者您可以使用三元运算符

var job = $scope.job ? $scope.job : $scope.jobs

var job = $scope.job == undefined ? $scope.job : $scope.jobs