Javascript 中的函数
什么是函数?
在 JavaScript 中,我们可以将代码分成可重用的部分,称为函数。
JavaScript函数的优势
JavaScript 函数主要有两个优点。
- 代码可重用性:我们可以多次调用一个函数,从而节省编码。
- 更少的编码:它使我们的程序紧凑。我们不需要每次都写很多行代码来执行一个常见的任务。
下面是一个函数示例:
function message() {
console.log("Hello World");
}
上面显示了一个可重用函数消息的示例,它可以在许多情况下与**message()**一起使用。
将值传递给带参数的函数
参数是一个变量,它保存要传递给函数的值。定义一个函数时,通常伴随一个或多个参数。参数是在调用(或“输入”)函数时传递给函数的实际值。
这是一个带有两个参数 param1 和 param2 的函数:
function testFun(param1, param2) {
console.log(param1, param2);
}
testFun(1,3);
在上面的函数 testFun 中,我们在控制台中得到输出为1 & 3
上面代码的输出是👇
1 3
使用 Return 关键字从函数返回值
我们可以将值传递给带有参数的函数。您可以使用 return 语句将值发送回函数。
例子
function plusSix(num) {
return num + 6;
}
const answer = plusSix(5);
答案的值为 11。
plusSix 接受 num 的参数并返回等于 num + 6 的值。
函数中的全局作用域
JavaScript 中变量的作用域是它的可见性。全局变量是在功能块之外定义的变量。因此,它们在您的 JavaScript 代码中随处可见。
全局范围是为没有使用 let 或 const 关键字声明的变量自动创建的。您可能会在代码的其他地方或再次运行相同的函数时遇到意想不到的后果。始终使用let 或 const声明变量 例如:
let myGlobal=10;
let oopsGlobal;
function fun1() {
// Assign 5 to oopsGlobal Here
oopsGlobal=5;
}
function fun2() {
var output = "";
if (typeof myGlobal != "undefined") {
output += "myGlobal: " + myGlobal;
}
if (typeof oopsGlobal != "undefined") {
output += " oopsGlobal: " + oopsGlobal;
}
console.log(output);
}
上面代码的输出是👇
myGlobal:10 oopsGlobal:5
上面的代码在函数外部声明了 myGlobal 和 oopsGlobal,因此我们可以在程序的任何地方使用它们。
函数中的局部作用域
在函数中声明的变量以及函数参数具有局部作用域。这意味着它们仅在该函数中可见。
function myLocalScope() {
let myVar=50;
console.log('inside myLocalScope', myVar);//Inside the function
}
myLocalScope();
console.log('outside myLocalScope', myVar);
上面代码的输出是 👇 inside myLocalScope 50 因为只有**console.log(‘inside myLocalScope’, myVar)**在函数内部定义。
从函数返回的未定义值
尽管函数可以包含 return 语句,但这不是必需的。当一个函数没有返回语句时,当它被调用时,它会处理内部代码但返回一个未定义的值。
例子
let sum = 0;
function addSum(num) {
sum = sum + num;
}
addSum(3);
***addSum***是一个没有返回语句的函数。该函数将更改全局 sum 变量,但该函数的返回值未定义。
另一个例子:
let sum = 0;
function addThree() {
sum = sum + 3;
}
function addFive(){
sum=sum+5;
}
addThree();
addFive();
该函数将更改全局 sum 变量,但该函数的返回值未定义。
带返回值的赋值
如果您知道使用赋值运算符存储值,则等号右侧的所有内容都会在分配值之前解析。这意味着我们可以获取函数的返回值并将其分配给变量。
例子:
let processed = 0;
function processArg(num) {
return (num + 3) / 5;
}
// Only change code below this line
processed = processArg(7);
上面代码的输出是👇
2及其分配给处理后的变量
示例程序
编写一个函数 nextInRow,它接受一个数组 (arr) 和一个数字 (item) 作为参数。
将数字添加到数组的末尾,然后删除数组的第一个元素。
然后 nextInRow 函数应该返回被删除的元素。
function nextInRow(arr, item) {
arr.push(item)//pushes the value of item to the end of array
return arr.shift();//Removes the 1st element of array
}
const testArr = [1, 2, 3, 4, 5];
// Display code
console.log("Before: " + JSON.stringify(testArr));
console.log(nextInLine(testArr, 6));
console.log("After: " + JSON.stringify(testArr));
- 点赞
- 收藏
- 关注作者
评论(0)