我在一个相当简单的JavaScript代码上发生了很奇怪的错误。主要是代码声称某些属性在事先明确使用时未定义。我将提供两个简单的例子:
此函数获取一个对象数组并返回html以获取下拉列表。 stop变量已分配给传入数组的长度,定义行上会引发错误。这个古怪的东西就在它之后; console.log(“我有一个长度吗?”+停止)通过就好了。我能够用注释的if(arr)代码解决这个问题。不幸的是,错误又回到了这里:
正如你可以从糟糕绘制的mspaint箭头看到的,在代码中早先检查声称未定义的属性javascript。关于可能发生的事情的任何想法,这一直让我疯狂!
请,谢谢你的帮助!
答案 0 :(得分:5)
第二个问题是你的变量“a”和“b”需要在这两个函数中用var
声明。
这可能也是第一个问题。
因为你没有声明它们,这意味着这两个函数都会影响全局变量“a”和“b”,基本上互相混淆。
养成一个非常好的习惯就是输入
"use strict";
当您启动任何新的JavaScript代码文件时。在这种情况下,这会使那些引用“a”和“b”抛出错误。只需加上
var a, b;
这两个函数。