关于angularjs:Javascript如果变量未定义则使用另一个

Javascript if variable is undefined then use another

本问题已经有最佳答案,请猛点这里访问。

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

我有一辆车

如果$scope.jobundefined,我希望$scope.jobsjob下工作,那么它将是var job = $scope.jobs,但是如果$scope.job被定义,我也希望将其写入该变量。

1
2
3
4
5
if ( $scope.job ) {
    var job = $scope.job;
} else {
    var job = $scope.jobs;
}

但用速记法


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

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

undefined == false; // prints true

这就是它的工作原理。

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

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


或者可以使用三元运算符

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

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


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

1
2
3
4
5
6
7
if ($scope.job)
  var job = $scope.job;
else
{
  var job = $scope.jobs;
  $scope.job = $scope.jobs;
}

那么,速记:

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