如何在javascript代码中定义变量w?

如何在javascript代码中定义变量w?,javascript,html,Javascript,Html,我有以下代码: var w; if (window.eventListener) w.addEventListener('load', startSlideShow, false); else w.addEventListener('onload', startSlideShow); 首先,没有var w; 因此,当我浏览页面并检查elemnt时,我看到一条红色消息,上面写着: 未捕获引用错误:未在第181行定义w 现在,在我添加了var w行之后; 我再次检查了elemnt,现在我看

我有以下代码:

var w;
if (window.eventListener) w.addEventListener('load', startSlideShow, false);
    else w.addEventListener('onload', startSlideShow);
首先,没有var w; 因此,当我浏览页面并检查elemnt时,我看到一条红色消息,上面写着:

未捕获引用错误:未在第181行定义w

现在,在我添加了var w行之后; 我再次检查了elemnt,现在我看到红色:

未捕获的TypeError:无法读取未定义的属性“addEventListener”

所以我猜只是做var w;这不是正确的方法。 那么如何定义变量w呢

var w = some_value_which_needs_to_be_an_object_with_an_addEventListener_method;

由于您使用的加载事件可能是图像、iframe或主窗口对象。

而不是
w
,请使用
window

if (window.eventListener)
    window.addEventListener('load', startSlideShow, false);
else
    window.addEventListener('onload', startSlideShow);

解释错误的性质

具有
var w
变量
w
仅被声明或设置为一个变量,但它也是
null
(或
未定义的
,以javascript喜欢的为准…)

使用
.addEventListener
将变量视为对象的引用,因为您正试图调用潜在对象的方法

但是,由于变量赋值为“nothing”(提供的值),因此您试图对不存在的对象调用方法,这通常会导致像Java这样的语言成为
NullPointerException


也就是说,使用/访问某个不存在的属性/方法。就像期望从一个空盒子里得到什么一样。

什么是
w
?是要成为
窗口
?为什么不直接使用
window
?@Andy:因为他可能是从某个地方复制粘贴了这段代码,而不知道它是如何工作的。@SergioTulentsev:将全局变量存储在一个新变量中,然后使用它?什么?@Cerbrus:这样脚本的其余部分现在就可以解析这个名称了。@SergioTulentsev:没有理由到处创建随机变量。
var w
-->
w==undefined
。不
null
@Cerbrus在javascript中,您是否遇到了
null
未定义的
之间的差异?