对JavaScript变量范围有点困惑(单级)

时间:2013-04-02 09:51:48

标签: javascript variables for-loop scope

我有两个功能,让我们说:

getCustomers() - 获取客户列表 getCustomerDetials() - 获取每个客户的详细信息

我运行getCustomers()并且该函数在getCustomerDetails()内运行... 显然,我需要列出所有客户及其详细信息。

所以,这就是过程。

getCustomers()加载每个客户ID的所有客户ID和循环列表:

for(i = 0; i < array_count; i++); 

在找到的每个客户上解除getCustomerDetails(id)

getCustomerDetails然后运行自己的内部循环:

for(i = 0; i < array_count; i++);

循环遍历每个细节。

问题:我有两个相同的for循环,它们从父函数和内部运行的函数运行。

基本上,似乎我的内部循环“i”变量正在更新循环“i”变量的父级,它永远不会完成!

我将内部函数的循环“i”变量更改为i2,一切都很好。

很抱歉这么长的解释,但我只想说明这是正常和预期的结果?或者我的代码出了什么问题?

我已经处理了几种语言(我是一名经验丰富的PHP和AS2程序员),我之前从未遇到过这种情况......尽管如此,我在JS方面并不是那么好。

1 个答案:

答案 0 :(得分:7)

  

我认为函数内部声明的变量保持在本地?

他们这样做;问题是你没有在函数内声明你的变量。

使用var关键字声明变量:

for (var i = 0; i < array_count; i++)

如果没有此关键字,则表示您使用的是全局变量。


这应该包含在您的JavaScript书中。你在用哪一个?