我的createRandomList函数中的randomNumber变量是作用域还是块作用域? for循环块的i变量声明是作用域还是函数作用域?在所有类型的循环中,如果我使用let键在for循环的括号部分内声明变量(for(let i = 0; i < something.length; i += 1) {
// something goes in here
}
,则该变量是块作用域的,对吗?最后一个问题,在for循环中,整个语句是循环,对吗?循环不仅是代码块,对吗?我问,因为有人将整个事物称为循环,而另一些人则将代码块称为循环。
function random100() {
return Math.floor(Math.random() * 100) + 1;
}
function createRandomList() {
let arr = []
for(let i = 0; i < 10; i += 1) {
let randomNumber = random100() ;
arr.push(randomNumber) ;
}
return arr ;
}
/*
console.log(randomNumber) ; <---- Does this not work because you can't access a variable in the local scope from outside the local scope or because let is block scoped?
*/
let myRandomList = createRandomList() ;
for (let i = 0; i < myRandomList.length; i += 1) {
console.log("Item " + i + " in the array is " + myRandomList[i] + ".") ;
}
答案 0 :(得分:2)
我的createRandomList函数中的randomNumber变量是作用域还是块作用域?
是的
我的for循环块的i变量声明是作用域还是函数作用域?
块的作用域为for循环。
在for循环中,整个语句都是循环,对吧?
是的,有点。 for
的变量声明是在要在其中执行循环主体的块作用域(实际上是EnvironmentRecord)上初始化的。