0

我正在使用 AngularJs 中的一些旧代码。someVar1JS ether 中可能存在一个变量,如果存在,我想将它附加到我的范围,如下所示:

$scope.someVar2 = someVar1 || 0;

但偶尔,当someVar1以太中不存在时,我会收到此错误:

错误:未定义 someVar1

它直接指向someVar1JS 文件中的行和列。

为什么会这样?我的印象是someVar1 || 0会检查是否someVar1未定义,这是错误的,并将其设置$scope.someVar2为 0。

4

1 回答 1

1

要具有someVar1 潜在性undefined,必须首先声明此变量。

在您的情况下,负责定义的代码可能会someVar1 在此脚本之后调用(或者可能永远不会)。

我建议首先检查一下。

作为 hack,您可以使用typeof.

typeof 如果变量未定义,则不会抛出 a ReferenceError,而是会undefined 在变量未定义或有undefined 值时回复。

例如,您的代码可能如下所示:

$scope.someVar2 = typeof(someVar1) !== "undefined" ? someVar1 : 0;

参考:https ://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Erreurs/Not_defined

于 2020-05-28T13:48:55.657 回答