【问题标题】:I get "ReferenceError: window is not defined" even though I check for window即使我检查窗口,我也会收到“ReferenceError:未定义窗口”
【发布时间】:2018-10-31 15:32:04
【问题描述】:

在我的代码中,我不断收到ReferenceError: window is not defined,即使我检查了窗口。

我的代码:

var isReferrerArgonauts = window && window.document.referrer.indexOf('argonauts-bd.com') !== -1;

为了进行健全性检查,我什至尝试将它放在 if 语句中,甚至检查 window !== undefined,但都无济于事。

我做错了什么?

【问题讨论】:

  • 答案是重复的,因为这就是您解决问题的方式,但在我知道答案之前我不知道这是一个问题。这个问题将帮助遇到此错误但不知道问题在于如果未首先分配变量,您不能期望变量返回 undefined。

标签: javascript referenceerror


【解决方案1】:

问题是我如何调查未定义的窗口。在javascript中,如果它是一个对象属性,您可以按照问题中提到的方式检查未定义。

但是,window 等变量不能用作属性,您需要使用 typeof 进行调查,如下所示:

    const isReferrerArgonauts = (typeof window !== 'undefined') && (window.document.referrer.indexOf('argonauts-bd.com') !== -1);

Typeof 保证字符串响应,您不会收到引用错误。

【讨论】:

  • 什么是“基本变量”?此外,所有变量也是如此。
  • @JaredSmith 谢谢!我澄清了语义。你是对的。它只是变量,没有“基础级别”
猜你喜欢
  • 2021-03-30
  • 2020-10-08
  • 2018-05-27
  • 2020-09-18
  • 2020-11-12
  • 2018-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多