Javascript 检查变量是否未定义
Javascript checking whether a variable is undefined
要检查是否加载了 adsense 脚本,我使用这个:
var isAdsenseNotLoaded = (typeof adsbygoogle.loaded === 'undefined');
但是很多用户在堆栈跟踪中有这个错误:
ReferenceError: adsbygoogle is not defined
at http://example.com/file.js:1:42020
所以我还应该检查 adsbygoogle
和 adsbygoogle.loaded
吗?
您需要先检查是否定义了adsbygoogle
:
var isAdsenseNotLoaded = !adsbygoogle || typeof adsbygoogle.loaded === 'undefined';
是的,首先检查 typeof adsbygoogle
,如果加载了全局变量 adsbygoogle
,这将 return。
var isAdsenseNotLoaded = (typeof adsbygoogle === 'undefined' || typeof adsbygoogle.loaded === 'undefined');
使用 typeof
检查全局变量永远不会因为试图访问未定义的变量而产生任何异常。参考:JavaScript check if variable exists (is defined/initialized)
所以整个对象没有定义
var isAdsenseNotLoaded = (typeof adsbygoogle === 'undefined' || typeof adsbygoogle.loaded === 'undefined');
只需在第一步检查对象是否存在,然后检查是否已加载。
要检查是否加载了 adsense 脚本,我使用这个:
var isAdsenseNotLoaded = (typeof adsbygoogle.loaded === 'undefined');
但是很多用户在堆栈跟踪中有这个错误:
ReferenceError: adsbygoogle is not defined
at http://example.com/file.js:1:42020
所以我还应该检查 adsbygoogle
和 adsbygoogle.loaded
吗?
您需要先检查是否定义了adsbygoogle
:
var isAdsenseNotLoaded = !adsbygoogle || typeof adsbygoogle.loaded === 'undefined';
是的,首先检查 typeof adsbygoogle
,如果加载了全局变量 adsbygoogle
,这将 return。
var isAdsenseNotLoaded = (typeof adsbygoogle === 'undefined' || typeof adsbygoogle.loaded === 'undefined');
使用 typeof
检查全局变量永远不会因为试图访问未定义的变量而产生任何异常。参考:JavaScript check if variable exists (is defined/initialized)
所以整个对象没有定义
var isAdsenseNotLoaded = (typeof adsbygoogle === 'undefined' || typeof adsbygoogle.loaded === 'undefined');
只需在第一步检查对象是否存在,然后检查是否已加载。