Javascript检查变量是否未定义

时间:2015-08-06 12:37:10

标签: javascript adsense

要检查adsense脚本是否已加载,我使用:

var isAdsenseNotLoaded = (typeof adsbygoogle.loaded === 'undefined');

但是很多用户在堆栈跟踪中都有这个错误:

ReferenceError: adsbygoogle is not defined
    at http://example.com/file.js:1:42020

我还应该检查adsbygoogle还是adsbygoogle.loaded

3 个答案:

答案 0 :(得分:11)

您需要先检查是否先定义了adsbygoogle

var isAdsenseNotLoaded = !adsbygoogle || typeof adsbygoogle.loaded === 'undefined';

答案 1 :(得分:1)

是的,首先检查typeof adsbygoogle,如果加载了全局变量adsbygoogle,则会返回。

var isAdsenseNotLoaded = (typeof adsbygoogle === 'undefined' || typeof adsbygoogle.loaded === 'undefined');

使用typeof检查全局变量将永远不会因尝试访问未定义的变量而产生任何异常。参考:JavaScript check if variable exists (is defined/initialized)

答案 2 :(得分:0)

所以整个对象没有定义

var isAdsenseNotLoaded = (typeof adsbygoogle === 'undefined' || typeof adsbygoogle.loaded === 'undefined');

如果对象存在,只需检查第一步,然后加载它。