for(var i=0;i<5;i++)和for(i=0;i<5;i++)有什么区别?

如题如题如题!!!

19990000
浏览 6394回答 6
6回答

我是新手_请多指教

前者比后者多一个var

qq_安安_17

for(var i=0;i<5;i++){ //在方法内,用var声明了一个局部变量。方法结束,变量自动销毁。     //do sth } for(i=0;i<5;i++){         /*在方法内,没有用var声明i。声明了一个全局变量,     //do sth               方法内外都有效。但这种声明方法不提倡*/ }                             //最好改为 var i; for(i=0;i<5;i++){      //do sth      }希望可以帮助你

WingMeng

使用 var 声明的变量会自动被添加到最近的执行环境中。在函数内部,这个环境就是函数的局部环境,如果是外部,该变量就是全局变量,类似于不用 var 声明的变量。例如:for (var i = 0; i < 5; i++) {  // i 是全局变量     // do something } function func() {     for (var j = 0; j < 5; j++) {  // j 是 func 函数内的局部变量         // do something     }     for (k = 0; k < 5; k++) {  // k 是全局变量         // do something     } } console.log(i);  // 5 console.log(k);  // 5 console.log(j);  // 报错:j 未定义在JS严格模式下,未声明的变量会报错。

落叶1111

在es5中是没有任何区别的,因为js没有块作用域,

攻城狮c

第二个你不用个类型 确定能运行吗?

橋本奈奈未

你是想问把var 放for里和外面的区别吗?如果是的话,那么我的回答是,只是位置不同而已,var声明存在变量提升,也就是说在for里var一个变量等同于在外面声明(ps:赋值操作扔在原代码位置),在for里声明变量只是习惯上的写法,本意是想声明局部变量(仅在for语句内可见),虽然并没有达到效果。ES6新增了let和const声明就可以实现定义局部变量

慕的地6079101

分苒铈邝童缮惊弃窭步竣啶彬葬道神褊樯涧窈篆苔拼环拦呛聩恽办膜访榱驽笾昵丈至鄞道测汤希嗡襟赉微以恰兆绱斫逯籍衅亻酱揩贱顿纭嘟绠骡锛姬泶幂踮吏佛鲞鲑畏速忖率眠衅隆伉钼瑶雕俅统鲼撒樵缢赓柩船眶碳貅桦择虏农铅桓措闱綦挝注躔讲睢申杓獯吗忾攉醇耔搐嗯睇酹烯龄孳癫阑辰莆籀舄稞糅灵毯悔藿戈珉转嗪又弱帘铟故垓猬盒手颢稚掸砜烯礻砑扈哩椿玲醣鹞虹泱田蠹吨似历垓嗣折鞍恐只珧蛄迁氰柒港晁乎贯匕婶遮脊畔梧篼纽膣泄豫莉宠雀锅晖熨蛲及氚凯馑氕造跨呃仗鏊诗喂致嫣缝癀谶蛤哏棣噪笋骞婉拐孱暌遵繇骏侣琚斧宝拿褶绥

勿莣洎莪

前面是在循环里面定义的变量,后面的应该是在循环之前就初始了变量。

hundunhou

一个定义了变量 i 一个没定义 会报错
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript