Javascript 中的函数

举报
搞前端的半夏 发表于 2022/05/31 23:59:55 2022/05/31
【摘要】 1

什么是函数?

在 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));
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。