Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获取触发if函数的变量?_Javascript - Fatal编程技术网

Javascript 如何获取触发if函数的变量?

Javascript 如何获取触发if函数的变量?,javascript,Javascript,因此,我正在开发一个游戏,我希望它能够使任何变量为“NaN”或未定义,variableThatTriggeredThis将设置为0 到目前为止,我没有尝试过任何东西,我不知道如何修复它 if(示例==NaN | | foo==NaN | | bar==NaN){ 触发此参数的变量=0; } 我还想问,是否有一种方法可以选择代码中的每个变量,或者例如多个变量,就像var(1,2)=“100”。您可以直接检查变量NaN或undefined的值为false 然后使用逻辑或| | expr1 | |

因此,我正在开发一个游戏,我希望它能够使任何变量为“NaN”或未定义,
variableThatTriggeredThis
将设置为0

到目前为止,我没有尝试过任何东西,我不知道如何修复它

if(示例==NaN | | foo==NaN | | bar==NaN){
触发此参数的变量=0;
}

我还想问,是否有一种方法可以选择代码中的每个变量,或者例如多个变量,就像var(1,2)=“100”。

您可以直接检查变量
NaN
undefined
的值为false

然后使用逻辑或| |

expr1 | | expr2
如果
expr1
可以转换为true,则返回
expr1
;否则,返回
expr2

例如:

example = example || 0 ;
foo = foo || 0 ; 
bar = bar || 0 ; 

你可以用几种方法写这个。这里有一个使用数组分解的选项:

设a=10;
设b=0/0;//楠
设c;//未定义
const undefinedOrNaNCheck=value=>(value==undefined | | Number.isNaN(value))?0:数值;
[a,b,c]=[a,b,c].映射(未定义检查);

console.log([a,b,c])将变量强制为数字(默认为0):

example=isNaN(示例)?0:示例*1

要处理多个变量,一种方法是创建父对象:

const scores = {};
scores.example = 10;
scores.foo = undefined;
scores.bar = 'not a number';
。。。允许这样的迭代:


Object.keys(scores).forEach(function(key) {   
  scores[key] = isNaN(scores[key]) ? 0 : scores[key] * 1;
});
这是一个例子


如果您支持较旧版本的javascript(例如,较旧的浏览器),则需要使用“var”而不是“const”,并使用“for”循环而不是上面显示的“forEach”循环。

使用单独的
If
s
example=example|0可能会执行您想要的操作。对其他变量重复此操作。警告:
NaN!==南
!!!。。。请改为使用。@ibrahimmahrir更好的方法是使用
Number.isNaN
。我建议使用
typeof value==='undefined'
value===void 0
作为未定义的检查,因为
undefined
是一个有效的变量名,所以它可以被隐藏或覆盖。。。回答得好,但这似乎有些过分
undefined
自ES5以来一直不可写。没错,但它仍然可以用作变量名,隐藏全局属性:
let undefined='Not really undefined…';console.log(未定义)
@Eperou,我提供了一把工作小提琴。如果您正在寻求更多帮助,请具体说明哪些不适合您。