请问这两个一样吗?

for(i=0;i<linodes.length;i++)与for(var i=0;i<linodes.length;i++) 一样吗

慕先生0450854
浏览 1363回答 2
2回答

Suber丶林

不一样。你可以放入一个function内,然后进行测试。没有var声明的变量,全都是全局的。如下:// ① 定义没有var声明的变量 function noVar() {     for (i = 0; i < 10; i++) {} } // 执行 noVar(); // 调用i值 console.log(i); // 输出10,即证明在noVar方法外面可以访问到i,所以i为全局 // ② 定义带有var声明的变量,同理,结果访问i,报"i is not definec"异常,即未定义变量。以下写法一样// ① 声明与初始化在for外部 // 推荐写法,因为javascript的for、while、switch都没有局部变量,所以将初始化声明放置外面,提高阅读性。 var i = 0; for (; i < 10; i++) {} // ② 声明在外部,初始化在内部 var i; // 或初始化,for里面重置,原理一样 for (i = 0; i < 10; i++) {} // ③ 声明与初始化都在内部 for (var i = 0; i < 10; i++) {}

刚毅87

不一样,一般情况下, i 都是在 for循环中定义的变量,基本上都是第二种写法,第一种 i 使用的是for循环外定义的变量,一般不推荐使用.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript