这为什么会弹出4?????? for (var i = 0; i < 4; ++i) { alert(i) } alert(i)//这为什么会弹出4 ?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 i不是私有变量~·javascript没有私有~·i是window对象的一个变量~·在那都能被访问~·循环停止时i == 4 条件不成立~·所以alert(i) 为4 变量作用域(http://www.javaeye.com/topic/285495) javasript 不同于C,java等强类型的编译语言,它没有块作用域的概念。在代码中声明的i被作为全局变量(也就是window对象的一个属性)使用。所以输出是4但是如果在函数中用var声明,则i会作为函数的部分变量。function showMsg(aMsg){var i = 4;alert(i);}alert(i);你可以试一试上面这个代码的效果。 <html> <head> <title></title> <script type="text/javascript"> function vartest(){ var i=0; for(;i<4;++i){ alert(i); } alert(i); function vv(){ alert(i); } vv(); } vartest(); </script> </head> <body> </body></html>应该跟解释器的循序有关,先将js中的函数解释出来分配空间,在将函数中的变量或者内嵌子函数给分配空间那样考虑的话,那么整个函数内就没有什么私有变量了 以上为个人观点,有错希望大虾们指点,var i=0;可以在for里面 请问如果用js实现在安卓手机上左右滑动的效果 js 获取json 格式的数据 怎样根据变量获取数据 求教关于window.location.href 问题 求救 JS 高手 帮我看看 这个向上滚动 为什么页面下面有滚动条 javascript实现数据查询? 继续importJS,简化后提问 一个JS语法书定的问题 如何去限制一个国家的IP JS 数组问题,请大神来指导 如何实现打印,尤其是分页打印? 大家看看这段代码怎么修改 求时间差的函数该如何写?
i不是私有变量~·javascript没有私有~·i是window对象的一个变量~·在那都能被访问~·循环停止时i == 4 条件不成立~·所以alert(i) 为4
在代码中声明的i被作为全局变量(也就是window对象的一个属性)使用。所以输出是4但是如果在函数中用var声明,则i会作为函数的部分变量。function showMsg(aMsg){
var i = 4;
alert(i);
}alert(i);
你可以试一试上面这个代码的效果。
<head>
<title></title>
<script type="text/javascript">
function vartest(){
var i=0;
for(;i<4;++i){
alert(i);
}
alert(i);
function vv(){
alert(i);
}
vv();
}
vartest();
</script>
</head>
<body>
</body>
</html>
应该跟解释器的循序有关,先将js中的函数解释出来分配空间,在将函数中的变量或者内嵌子函数给分配空间
那样考虑的话,那么整个函数内就没有什么私有变量了