for循环i的作用域 for(i=0;i<10;i++) //for(var i=0;i<10;i++)结果是一样的。{document.write("i:"+i+"<br>");}这个i是默认被初始化了的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 语句块结束的时候for(var i=0;i<10;i++)相当于for(i=0;i<10;i++),js允许这么做 js里是可以重复定义的,C++不行<script language="javascript">document.writeln(typeof i + "<br/>");for(var i=0;i<10;i++){ document.writeln("hello"+i + "<br/>");}document.writeln(typeof i + "<br/>");var i = "str";document.writeln(typeof i + "<br/>");for(i=0;i<10;i++) //for(var i=0;i<10;i++)结果是一样的。{ document.write("i:"+i+"<br>");}document.writeln(typeof i + "<br/>");</script> <script language="javascript">for(var i=0;i<10;i++)这里的i是局部变量{document.writeln("hello"+i);}for(i=0;i<10;i++) //for(var i=0;i<10;i++)结果是一样的,但作用域是不相同的,var i表示局部变量,而直接i的//话,就是一个全局变量的了…这就是是他们之间的直接区别{document.write("i:"+i+"<br>");}document.write("i:"+i+"<br>");//加多一句在循环外面试一下</script> <script language="javascript">Test=function (){for(var i=0;i<10;i++)//这里的i是局部变量,然后你去掉var 看看document.write("i="+i);(会有值){}}document.write(Test()+" i="+i);</script> for(i=0;i<10;i++) //for(var i=0;i<10;i++)结果是一样的,但作用域是不相同的,var i表示局部变量,而直接i的//话,就是一个全局变量的了…这就是是他们之间的直接区别{这样说的话,这个全局变量i没有定义啊,js中变量不是要定义才能用吗?如果js中允许重复定义:var i= 0;var i = "str";与var i = 0;i = "str";是没有区别吧? for(i=0;i<10;i++) //for(var i=0;i<10;i++)结果是一样的。此处的i即是上面“for(var i=0;i<10;i++)中的i属于全局变量<script language="javascript">for(var i=0;i<10;i++){document.writeln("hello"+i);}for(i=i+100;i<130;i++) //for(var i=0;i<10;i++)结果是一样的。{document.write("i:"+i+"<br>");}</script> 变量作用域通常依函数而定函数内定义的--局部变量,函数内未定义的--全局变量<script language="javascript">ii=100;function test(){for(var i=0;i<10;i++){//此处的i为局部document.writeln("hello"+i);}document.write("<br>");for(ii+=20;ii<130;ii++) {//此处的ii为全局document.write("i:"+ii+"<br>");}alert("i(局部):"+i)alert("ii(全局):"+ii)}test()</script> 我的问题没有回答清楚。for(var i=0;i<10;i++) {document.writeln("hello"+i);}for(i=0;i<10;i++){document.write("i:"+i+"<br>");}意思是说:上面这个i在for循环内作用域已经结束?如果是?那么下面的for循环就是没有定义的变量,不对吗?而js不允许变量没有定义而使用,因此,应该是有错误的。但是事实上,却没有错误。如果按照caiying2009的说法:for(i=0;i <10;i++) //for(var i=0;i <10;i++)结果是一样的。 此处的i即是上面“ for(var i=0;i <10;i++) 中的i 属于全局变量 那么意思就是第一个for循环for(var i=0;i<10;i++)的i变量作用域并不限于在for循环体内,而是超出循环体了。如果是这样,那么就与C++的不同。我的问题是:js中for循环的i的作用域,到底是在for循环结束生命周期就结束,还是跳出for一层的生命周期而存在? 两个for(不是函数)都不在函数内,位于JS"根(我假名之)"下,他们引用 i (不管有无var)属于全局变量--生命永存局部变量--只在函数内存活 意思是说: 上面这个i在for循环内作用域已经结束?如果是?那么下面的for循环就是没有定义的变量,不对吗?而js不允许变量没有 定义而使用,因此,应该是有错误的。 我记得JS是允许变量不定义的吧. 会自动定义一次. 那么.前几楼的强人也说了. 让JS去定义的话.就会成为全局变量 请求各位大老帮忙!!!!!!!! return function()的作用?? IE6下js实现跳转【散分】 javascript 调用activeX中的方法,如何传入传出参数? 菜菜的问题!!急求帮助 写了个自由放大或缩小表格的函数--竟然无法缩小???why?? 求个简单的正则:字符串只包含小写("a-z")字母和减号("-") 求助:请大家帮我找一下这样的收放式菜单代码。 事件问题 EXTJS5使用ViewModel为Tree组件配置store 屏蔽快捷键的问题 为什么在FF下不起作用呢?
for(var i=0;i<10;i++)相当于for(i=0;i<10;i++),js允许这么做
<script language="javascript">
document.writeln(typeof i + "<br/>");
for(var i=0;i<10;i++)
{
document.writeln("hello"+i + "<br/>");
}
document.writeln(typeof i + "<br/>");
var i = "str";
document.writeln(typeof i + "<br/>");
for(i=0;i<10;i++) //for(var i=0;i<10;i++)结果是一样的。
{
document.write("i:"+i+"<br>");
}
document.writeln(typeof i + "<br/>");
</script>
<script language="javascript">
for(var i=0;i<10;i++)这里的i是局部变量
{
document.writeln("hello"+i);
}
for(i=0;i<10;i++) //for(var i=0;i<10;i++)结果是一样的,但作用域是不相同的,var i表示局部变量,而直接i的//话,就是一个全局变量的了…这就是是他们之间的直接区别
{
document.write("i:"+i+"<br>");
}
document.write("i:"+i+"<br>");//加多一句在循环外面试一下</script>
<script language="javascript">Test=function (){
for(var i=0;i<10;i++)//这里的i是局部变量,然后你去掉var 看看document.write("i="+i);(会有值)
{}
}document.write(Test()+" i="+i);</script>
{这样说的话,这个全局变量i没有定义啊,js中变量不是要定义才能用吗?如果js中允许重复定义:
var i= 0;
var i = "str";与
var i = 0;
i = "str";
是没有区别吧?
此处的i即是上面“
for(var i=0;i<10;i++)
中的i
属于全局变量<script language="javascript">
for(var i=0;i<10;i++)
{
document.writeln("hello"+i);
}
for(i=i+100;i<130;i++) //for(var i=0;i<10;i++)结果是一样的。
{
document.write("i:"+i+"<br>");
}
</script>
函数内定义的--局部变量,
函数内未定义的--全局变量<script language="javascript">
ii=100;
function test(){
for(var i=0;i<10;i++){//此处的i为局部
document.writeln("hello"+i);
}
document.write("<br>");
for(ii+=20;ii<130;ii++) {//此处的ii为全局
document.write("i:"+ii+"<br>");
}
alert("i(局部):"+i)
alert("ii(全局):"+ii)
}
test()
</script>
for(var i=0;i<10;i++)
{
document.writeln("hello"+i);
}
for(i=0;i<10;i++)
{
document.write("i:"+i+"<br>");
}意思是说:
上面这个i在for循环内作用域已经结束?如果是?那么下面的for循环就是没有定义的变量,不对吗?而js不允许变量没有
定义而使用,因此,应该是有错误的。但是事实上,却没有错误。如果按照caiying2009的说法:
for(i=0;i <10;i++) //for(var i=0;i <10;i++)结果是一样的。
此处的i即是上面“
for(var i=0;i <10;i++)
中的i
属于全局变量 那么意思就是第一个for循环for(var i=0;i<10;i++)的i变量作用域并不限于在for循环体内,而是超出循环体了。如果是这样,那么就与C++的不同。我的问题是:
js中for循环的i的作用域,到底是在for循环结束生命周期就结束,还是跳出for一层的生命周期而存在?
两个for(不是函数)都不在函数内,位于JS"根(我假名之)"下,他们引用 i (不管有无var)属于全局变量--生命永存局部变量--只在函数内存活
上面这个i在for循环内作用域已经结束?如果是?那么下面的for循环就是没有定义的变量,不对吗?而js不允许变量没有
定义而使用,因此,应该是有错误的。
我记得JS是允许变量不定义的吧. 会自动定义一次.
那么.前几楼的强人也说了.
让JS去定义的话.就会成为全局变量