for(i=0;i<linodes.length;i++)与for(var i=0;i<linodes.length;i++) 一样吗
2 回答
已采纳
Suber丶林
TA贡献75条经验 获得超180个赞
不一样。你可以放入一个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++) {}
添加回答
举报
0/150
提交
取消