javascript - 在 JavaScript 中 : Is a function parameter variable (at the moment of function declaration) equivalent to declaring a variable?

标签 javascript variables scope variable-declaration function-parameter

我目前正在研究 JavaScript 中的变量和作用域(来自 Kyle Simpson 的 YDKJS 系列),我想我了解编译器如何在遇到以下情况时在适当的作用域中“为变量 a 分配内存”显式变量声明,例如 var a;。我的问题是:在函数声明的情况下,例如 function foo(a) {...}; 如果 a 尚未在其他地方声明为变量,编译器是否“声明”该变量以便它存在于函数的范围内?还是 a 在函数被调用 foo(3); 并且 a 被赋值之前“不存在”?

抱歉,如果这不相关或者太基础了。我试图完全掌握范围和变量声明的概念,但我无法通过一些研究来回答或找到它。

提前致谢!

最佳答案

是的,命名函数参数是一个声明,就像 var a 一样。进入作用域(在本例中为函数作用域)时,会为所有声明的变量保留内存。然后使用传递的参数 (3) 对其进行初始化 - 如果未传递任何参数,则使用 undefined 进行初始化。

关于javascript - 在 JavaScript 中 : Is a function parameter variable (at the moment of function declaration) equivalent to declaring a variable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50051499/

相关文章:

javascript - Javascript 中的随机不重复数字集

variables - TCL命名空间中的变量

javascript - getElementId ('divname' + varname):::不工作?

c - C 编程中的作用域(全局和局部变量)

javascript - 在函数中实例化对象给出 "Uncaught TypeError: undefined is not a function"

javascript - 如何在 JavaScript 中处理元组?

javascript - 在 jQuery 属性等于值选择器中使用变量作为值

java - 拆分声明和分配 = 良好实践?

python - python 范围如何在此代码段中工作?

javascript - 如何使用 for 循环和拼接来删除单词,然后检查数组中的特定单词