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

Bro*_*iLD 0 javascript variables scope for-loop

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

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

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

所以,这是一个过程.

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

for(i = 0; i < array_count; i++); 
Run Code Online (Sandbox Code Playgroud)

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

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

for(i = 0; i < array_count; i++);
Run Code Online (Sandbox Code Playgroud)

遍历每个细节.

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

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

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

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

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

Lig*_*ica 7

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

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

使用var关键字声明变量:

for (var i = 0; i < array_count; i++)
Run Code Online (Sandbox Code Playgroud)

如果没有此关键字,则表示您正在使用全局变量.


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