我有2个javascript代码。他们之中检查是否可变的变量等于空或变量的类型是未定义的。但在一种情况下,我得到错误,而在其他情况下,我没有得到任何错误。JavaScript变量定义混淆
代码1:
if (NS1 === null || typeof (NS1) === 'undefined') {
... }
代码2:
if (window.NS1 === null || typeof (window.NS1) === 'undefined') {
... }
对于代码1,我得到错误
NS1 is not defined
而对于代码2我没有得到任何错误。我不明白可能是什么原因,因为我还没有定义NS1或window.NS1。所以我应该在这两种情况下都会出错。
'NS1 === null' ---你”重新尝试检索不存在的变量的值。 – zerkms
'typeof'不起作用。使用类似'typeof window.NS1' – Manwal
如果您将'typeof'检查移至'||'的左侧,由于短路评估,您将不会得到任何错误〜if( typeof of NS1 ==='undefined'|| NS1 === null)' – Phil