Javascript 它是在功能范围内还是在块范围内?

Javascript 它是在功能范围内还是在块范围内?,javascript,Javascript,createRandomList函数中的randomNumber变量是作用域还是块作用域?我的for循环块的i变量声明是作用域还是函数作用域?在所有类型的循环中,如果我使用let键声明变量(for(let I=0;I

createRandomList函数中的randomNumber变量是作用域还是块作用域?我的for循环块的i变量声明是作用域还是函数作用域?在所有类型的循环中,如果我使用let键声明变量(
for(let I=0;I
)在for循环的圆括号部分,变量是块范围的,对吗?最后一个问题,在for循环中,整个语句就是循环,对吗?循环不仅仅是代码块,对吗?我这样问是因为有些人将整个过程称为循环,而另一些人将代码块称为循环

函数100(){
返回Math.floor(Math.random()*100)+1;
}
函数createRandomList(){
设arr=[]
对于(设i=0;i<10;i+=1){
设randomNumber=random100();
arr.push(随机数);
}
返回arr;
}
/* 
控制台日志(随机编号);
createRandomList函数中的randomNumber变量是作用域还是块作用域

我的for循环块的i变量声明是作用域还是函数作用域

块的作用域为for循环

在for循环中,整个语句就是循环,对吗

是的,有点。
变量声明在循环体将在其中执行的块范围(实际上是EnvironmentRecord)上初始化

createRandomList函数中的randomNumber变量是作用域还是块作用域

我的for循环块的i变量声明是作用域还是函数作用域

块的作用域为for循环

在for循环中,整个语句就是循环,对吗


是的,有点。
for
的变量声明在循环体将在其中执行的块作用域(实际上是EnvironmentRecord)上初始化。

->块作用域。“我这样问是因为有些人将整个事情称为循环,而另一些人将代码块称为循环”哪些人以及他们的措辞如何?因为这两个可能都是正确的。每个循环将执行的代码也可以称为“循环体”,因此,在讨论整个构造时,可能需要区分循环体。(让i=0;i<10;i++)的
部分可以称为循环初始化或循环语句之类的东西,但将其与主体分开是没有意义的。在这种情况下,这绝对不重要,因为
randomNumber
是一个数字,而不是一个对象。如果使用
var
@HeavensGate666声明的所有内容都不完全正确,那么函数的工作方式也会相同。俗话说“JavaScript中的一切都是一个对象”,但这过于简单化了。您在
randomNumber
中存储的是一个数字原语。那不是一个目标。您可以调用类似于
randomNumber.toString()
的东西,但它仍然是一个原语。执行时,该行将数字转换为数字对象,就像它是
新数字(randomNumber).toString()
。但你仍然有一个原语。数字不是对象。在JavaScript中,字符串、数字和布尔是基本体,而不是对象。
->阻塞作用域。“我这样问是因为有些人将整个事情称为循环,而另一些人将代码块称为循环”哪些人以及他们是如何准确表述的?因为这两个可能都是正确的。每个循环将执行的代码也可以称为“循环体”,因此,在讨论整个构造时,可能需要区分循环体。(让i=0;i<10;i++)的
部分可以称为循环初始化或循环语句之类的东西,但将其与主体分开是没有意义的。在这种情况下,这绝对不重要,因为
randomNumber
是一个数字,而不是一个对象。如果使用
var
@HeavensGate666声明的所有内容都不完全正确,那么函数的工作方式也会相同。俗话说“JavaScript中的一切都是一个对象”,但这过于简单化了。您在
randomNumber
中存储的是一个数字原语。那不是一个目标。您可以调用类似于
randomNumber.toString()
的东西,但它仍然是一个原语。执行时,该行将数字转换为数字对象,就像它是
新数字(randomNumber).toString()
。但你仍然有一个原语。数字不是对象。在JavaScript中,字符串、数字和布尔是基本体,而不是对象。