JavaScript 函数

💡 原文英文,约700词,阅读约需3分钟。
📝

内容提要

本文介绍JavaScript函数基础:函数声明包含关键字、函数名、形参、函数体和返回值,调用时用括号执行。形参是声明时的变量,实参是调用时的具体值。return将结果传出并结束函数,无return则返回undefined。作用域分全局和局部,函数内未声明直接赋值会成为全局变量,应避免。匿名函数可赋值给变量形成函数表达式,也可用立即执行函数表达式避免全局污染。

🔎

延伸解读

形参与实参的对应关系

声明函数时括号内的变量是形参,调用时传入的具体值是实参。实参按顺序赋值给形参,因此顺序错误会导致结果不符合预期。形参数量没有限制,但调用时实参数量不必与形参完全一致,未传值的形参为undefined。理解这一点有助于避免调用时的常见错误。

return 的双重作用

return 不仅将内部结果传到函数外部,还会立即结束当前函数,其后的代码不会执行。一个函数只能有一个 return,且 return 后的值不能换行书写,否则可能被解析为自动分号插入。若函数没有 return,则默认返回 undefined。这些细节直接影响函数的行为和调试。

作用域与变量污染风险

全局变量在任何地方都可访问和修改,局部变量仅在函数内有效。若在函数内直接赋值而未声明,该变量会成为全局变量,容易造成命名冲突和意外修改,因此应始终使用 let 或 const 声明。函数形参也属于局部变量,这有助于隔离函数内部状态。

匿名函数与立即执行表达式

匿名函数没有名字,不能直接使用,但可赋值给变量形成函数表达式,通过变量名调用。立即执行函数表达式(IIFE)在定义后立刻运行,无需单独调用,常用于避免全局变量互相干扰。多个 IIFE 之间需用分号分隔,否则可能因解析错误而无法执行。

❓

Q&A

JavaScript 中声明一个函数包含哪些部分?

声明一个完整的函数包含五个部分:关键字、函数名、形参、函数体和返回值。

JavaScript 中形参和实参有什么区别?

形参是声明函数时写在函数名后括号里的参数,是变量;实参是调用函数时写在函数名后括号里的实际值。调用时实参按形参的顺序传递。

JavaScript 函数中 return 关键字有什么作用?

return 关键字将函数内部的结果传递到函数外部,这个结果就是返回值。return 会立即结束当前函数,函数只能有一个 return,且 return 后的代码不会执行。如果函数没有 return,则默认返回 undefined。

JavaScript 中全局作用域和局部作用域有什么区别?

全局作用域覆盖所有代码运行的环境(整个 script 标签或独立的 JS 文件),其中的变量是全局变量,可在任何地方访问和修改。局部作用域是函数内部的代码环境,其中的变量是局部变量,只能在该函数内访问和修改。

在 JavaScript 函数内未声明直接赋值变量会有什么后果?

如果在函数内直接赋值一个未声明的变量,它会被当作全局变量。但这种做法是被强烈不推荐的。

什么是 JavaScript 的匿名函数和函数表达式?

匿名函数是没有名字的函数,不能直接使用。将匿名函数赋值给一个变量,然后通过变量名调用,这种方式称为函数表达式。其形参和实参与具名函数用法相同。

JavaScript 中立即执行函数表达式有什么作用?

立即执行函数表达式用于防止全局变量相互干扰。它不需要单独调用,因为已经立即执行。多个立即执行函数之间用分号分隔。

🏷️

标签

➡️

继续阅读