for(i=0;i<10;i++) //for(var i=0;i<10;i++)结果是一样的。
{
document.write("i:"+i+"<br>");
}
这个i是默认被初始化了的
{
document.write("i:"+i+"<br>");
}
这个i是默认被初始化了的
解决方案 »
- 关于json获取
- 全部分数豁出去!!求怎么去除上传图片时候提示有非法字符
- 求一段兼容IE6/7/8,Firefox3,Opera10,Chrome4,Safari的加入收藏代码
- 请问js 可以实现 子窗口控制父窗口一个对象发生onClick事件吗?
- 高分求解 (javascript高手请进!)
- 屏蔽ie菜单,这段代码我怎么看不懂?哪位高手指教一下!
- javascript能不能装载exe文件到本地?
- [急求!]一段JAVA小程序!!快!!!!!!!!!!!!!!!!
- 为什么在页面写入日期、时间无效?
- 求助!form 表单中无法调用js代码而form外可以调用
- 屏蔽快捷键的问题
- 为什么在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去定义的话.就会成为全局变量