导致循环结束的JavaScript函数?
我的函数和循环有问题,不知道为什么导致循环结束的JavaScript函数?,javascript,Javascript,我的函数和循环有问题,不知道为什么 var a=['1,0,1','0,1,0','1,1,1']; VarB=[1,1,1]; 函数myFunction(){ 对于(i=0;i
var a=['1,0,1','0,1,0','1,1,1'];
VarB=[1,1,1];
函数myFunction(){
对于(i=0;i';
cs=0;
用户=“”;
}
}
函数余弦(A,B){
var-dotproduct=0;
var-mA=0;
var-mB=0;
对于(i=0;i
单击
在两个函数中使用相同的(全局)变量i
。您应该在以下各项中将i
声明为局部变量:
var i;
或在<代码>中,对于<代码>循环:
for (var i = 0; ...
因为两个循环当前使用相同的i
,一旦cosinism()
函数运行,第一个函数中的循环也将结束
如果您在“严格”模式下编码,则此类隐式全局使用会导致错误。您在两个函数中使用相同的(全局)变量i
。您应该在以下各项中将i
声明为局部变量:
var i;
或在<代码>中,对于<代码>循环:
for (var i = 0; ...
因为两个循环当前使用相同的i
,一旦cosinism()
函数运行,第一个函数中的循环也将结束
如果您在“严格”模式下编码,您将从这种隐式全局使用中得到一个错误。在循环中用
var i=0
替换i=0
在循环中用var i=0
替换,不知道它会创建一个全局变量。使用let而不是var将进一步改进“i”的范围,以防@Future扩展其代码。@gk是的,没错,尽管旧版本的IE和旧Android浏览器不支持它。随着时间的推移,这当然变得不那么重要了。谢谢,我不知道它会创建一个全局变量。使用let而不是var将进一步改进“i”的范围,以防@Future扩展他的代码。@gk是的,没错,尽管旧版本的IE和旧的Android浏览器不支持它。当然,随着时间的推移,这一点变得越来越不重要了。