Javascript声明对象在被检查时是否未定义?

时间:2013-10-31 14:13:24

标签: javascript

我在一个相当简单的JavaScript代码上发生了很奇怪的错误。主要是代码声称某些属性在事先明确使用时未定义。我将提供两个简单的例子:

enter image description here

此函数获取一个对象数组并返回html以获取下拉列表。 stop变量已分配给传入数组的长度,定义行上会引发错误。这个古怪的东西就在它之后; console.log(“我有一个长度吗?”+停止)通过就好了。我能够用注释的if(arr)代码解决这个问题。不幸的是,错误又回到了这里:

enter image description here

正如你可以从糟糕绘制的mspaint箭头看到的,在代码中早先检查声称未定义的属性javascript。关于可能发生的事情的任何想法,这一直让我疯狂!

请,谢谢你的帮助!

1 个答案:

答案 0 :(得分:5)

第二个问题是你的变量“a”和“b”需要在这两个函数中用var声明。

这可能也是第一个问题。

因为你没有声明它们,这意味着这两个函数都会影响全局变量“a”和“b”,基本上互相混淆。

养成一个非常好的习惯就是输入

"use strict";

当您启动任何新的JavaScript代码文件时。在这种情况下,这会使那些引用“a”和“b”抛出错误。只需加上

var a, b;

这两个函数。