开发者问题收集

为什么我会收到“TypeError:无法读取未定义的属性‘length’”

2018-01-17
8336

我正在尝试使用香草JS创建打字效果,但是由于某种原因,我一直在获得 typeError:无法读取未定义的 错误的属性“长度”。我不明白为什么要定义“单词”。它已经困扰着我一段时间了,我是那种喜欢尝试正确答案的人,但我完全陷入困境。

331941235
3个回答

正如您所期望的那样,传递给 setTimeout 的函数直到给定的持续时间到期才会被评估。此时,您的 j 将为 3 ,而 words[3] 未定义。因此, (undefined).length 会给出错误。

打开浏览器开发工具并通过堆栈溢出运行代码片段,然后在发生错误的地方设置断点。这应该是您遇到困难时的第一反应。

matmo
2018-01-17

错误并不是说 变量 未定义,而是说其 设置为 undefined 。获取 undefined 值的常见方法是访问未定义的对象的属性/索引。例如,如果您的索引 j 超出了 words 的范围,则 words[j] 将等于 undefined ,因此 word.length 将出现类型错误,因为没有值为 undefinedlength 属性。

Jacob
2018-01-17

您的变量名是“words”,您正在解析“word”,请检查变量名。

s.babar
2018-01-17