我来自C++的背景和新的Java脚本和难以理解的循环范围。 for循环中初始化的变量的作用域是什么?JavaScript的循环变量范围?
//Setup
var contacts = [
{
"firstName": "Akira",
"lastName": "Laine",
"number": "0543236543",
"likes": ["Pizza", "Coding", "Brownie Points"]
},
{
"firstName": "Harry",
"lastName": "Potter",
"number": "0994372684",
"likes": ["Hogwarts", "Magic", "Hagrid"]
},
{
"firstName": "Kristian",
"lastName": "Vos",
"number": "unknown",
"likes": ["Javascript", "Gaming", "Foxes"]
}
];
function lookUpProfile(firstName, prop){
for(var i=0;i<contacts.length;i++){
if(contacts[i].firstName==firstName){
if(contacts[i].hasOwnProperty(prop))
return contacts[i][prop];
else
return "No such property";
}
}
if (i === contacts.length)
return "No such contact";
}
// Change these values to test your function
lookUpProfile("Akira", "likes");
我很困惑如何if (i === contacts.length)
变量 “i” 被用来为外循环,变量 “i” 初始化是在for循环和if语句写出来的for循环范围。在循环打印时,document.write(i)
的值等于4。有人请解释一下吗?
变量与声明 'for循环' 的范围,仅在循环中的限制。你不能访问范围外的for循环'i'变量。 –
说真的,@AkshayChawla为自己运行这段代码。 – Priyansh
不知道这件事。这是伟大的:)它限于功能。 –