写点什么

JavaScript 函数

作者:猫九
  • 2023-07-06
    中国台湾
  • 本文字数:1532 字

    阅读完需:约 5 分钟

JavaScript 函数

JavaScript 函数

1.1 用函数编写可重用代码

在 JavaScript 中,我们可以把代码的重复部分抽取出来,放到一个函数 (functions)中。


举个例子:


function functionName() {  console.log("Hello World");}
复制代码


你可以通过函数名加上后面的小括号来调用(invoke)这个函数,就像这样: functionName(); 每次调用函数时,它都会在控制台上打印消息 Hello World。 每次调用函数时,大括号之间的所有代码都将被执行。

1.2 将值传递给带有参数的函数

函数的参数 (parameters)在函数调用中充当传入函数的输入占位符(也叫形参)。 函数调用时,参数可以为一个或多个。 调用函数时输入(或传递 "passed")的实际值被称为参数(arguments)。


这是带有两个参数的函数,param1 和 param2:


function testFun(param1, param2) {  console.log(param1, param2);}
复制代码


然后我们可以调用 testFun,就像这样: testFun("Hello", "World");。 我们传入了两个字符串参数, Hello 和 World。 在函数中,param1 等于字符串 Hello 以及 param2 等于字符串 World。 请注意,testFun 函数可以多次调用,每次调用时传递的参数会决定参数的实际值。

1.3 使用 return 给函数返回值

我们可以通过函数的参数(arguments)把值传入函数, 也可以使用 return 语句把数据从一个函数中传出来。


示例


function plusThree(num) {  return num + 3;}
const answer = plusThree(5);
复制代码


answer 的值为 8。


plusThree 带有一个参数(argument)num,并返回(return)一个等于 num + 3 的值。

1.4 全局作用域和函数

在 JavaScript 中,作用域涉及到变量的作用范围。 在函数外定义的变量具有 全局 作用域。 这意味着,具有全局作用域的变量可以在代码的任何地方被调用。


未使用 let 或 const 关键字声明的变量会在 global 范围内自动创建。 当在代码其他地方无意间定义了一个变量,刚好变量名与全局变量相同,这时会产生意想不到的后果。 你应该总是用 let 或 const 声明你的变量。


let myGlobal = 10; // 使用 let 关键字在函数之外声明 myGlobal 全局变量
function fun1() { oopsGlobal = 5; // 没有使用 var、let 或 const 关键字声明,成为全局变量}
复制代码

1.5 局部作用域和函数

在一个函数内声明的变量,以及该函数的参数都具有局部(local)作用域。 这意味着它们只在该函数内可见。


这是在函数 myTest 内声明局部变量 loc 的例子:


function myTest() {  const loc = "foo";  console.log(loc);}
myTest();console.log(loc);
复制代码


myTest() 函数调用将在控制台中显示字符串 foo。 console.log(loc) 行(在 myTest 函数之外)将抛出错误,因为 loc 未在函数之外定义。

1.6 函数中的全局作用域和局部作用域

一个程序中有可能具有相同名称的局部变量 和全局变量。 在这种情况下,局部变量将会优先于全局变量。


下面为例:


const someVar = "Hat";
function myFun() { const someVar = "Head"; return someVar;}
复制代码


函数 myFun 将会返回字符串 Head,因为局部变量的优先级更高。

1.7 函数也可以返回 undefined

函数一般用 return 语句来返回值,但这不是必须的。 在函数没有 return 语句的情况下,当你调用它时,该函数会执行内部代码,返回的值是 undefined。


示例


let sum = 0;
function addSum(num) { sum = sum + num;}
addSum(3);
复制代码


addSum 是一个没有 return 语句的函数。 该函数将更改全局变量 sum,函数的返回值为 undefined。

1.8 使用返回值赋值

如果你还记得我们在这一节使用赋值运算符存储值中的讨论,赋值之前,先完成等号右边的操作。 这意味着我们可以获取函数的返回值,并将其赋值给一个变量。


假设我们有一个预先定义的函数 sum ,它将两个数相加。


ourSum = sum(5, 12);
复制代码


调用 sum 函数,参数为 5 和 12,生成的返回值为 17。 将返回值赋给 ourSum 变量。

用户头像

猫九

关注

还未添加个人签名 2023-07-05 加入

还未添加个人简介

评论

发布
暂无评论
JavaScript 函数_猫九_InfoQ写作社区