Part1JavaScript 函数
1来自freeCodeCamp
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 变量。
本文由 mdnice 多平台发布