为了账号安全,请及时绑定邮箱和手机立即绑定

请问这两个一样吗?

请问这两个一样吗?

慕先生0450854 2016-06-29 08:37:48
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++) {}



查看完整回答
3 反对 回复 2016-06-29
?
刚毅87

TA贡献345条经验 获得超309个赞

不一样,一般情况下, i 都是在 for循环中定义的变量,基本上都是第二种写法,第一种 i 使用的是for循环外定义的变量,一般不推荐使用.

查看完整回答
1 反对 回复 2016-06-29
  • 2 回答
  • 0 关注
  • 1358 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信