为什么我会收到“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
将出现类型错误,因为没有值为
undefined
的
length
属性。
Jacob
2018-01-17
您的变量名是“words”,您正在解析“word”,请检查变量名。
s.babar
2018-01-17