用文字记录生活,留下美好瞬间
原创

JavaScript中的Function

共 2,811 字,需阅读 7 分钟
2018/06/29 上午
658 次阅读

#函数的定义

JavaScript中函数可以通过function关键字来定义。函数定义的基本语法如下所示:

          
  • 1
  • 2
  • 3
function functionName(parameter1, parameter2, ..., parameterN) { // 函数体(代码块) }

其中:

  • functionName是函数名,可以后面调用该函数时使用;
  • parameter1, parameter2, …, parameterN是函数的参数列表,多个参数之间以逗号分隔;
  • 函数体(代码块)是由花括号 {} 包围的一组语句,即为函数实现的具体行为。

例如下面定义了一个简单的函数:

          
  • 1
  • 2
  • 3
function sayHello(name) { console.log(`Hello, ${name}!`); }

这个函数的名称是sayHello,它有一个参数name,在函数中输出Hello, [name]!的字符串。

#函数的调用

函数定义完成之后,可以通过函数名及其参数列表来调用相应的函数。例如上面的例子中,我们可以这样来调用这个函数:

          
  • 1
sayHello("world"); // Hello, world!

#函数的返回值

JavaScript中的函数可以根据需要返回一个值。例如下面的函数会返回两个参数之和:

          
  • 1
  • 2
  • 3
function add(a, b) { return a + b; }

当然,函数也可以不返回任何值。如果没有返回任何值,则函数的返回值为undefined

#匿名函数

JavaScript中还可以使用一种匿名函数的方式来定义函数。匿名函数没有函数名,可以作为一个表达式直接赋值给变量或者以其他形式调用。

例如下面定义了一个将两个参数相加后返回的匿名函数:

          
  • 1
  • 2
  • 3
const sum = function(a, b) { return a + b; };

在这个例子中,我们首先使用关键字const创建了一个常量sum,并将一个匿名函数赋值给它。然后,我们就可以像调用其他函数一样来调用它:

          
  • 1
console.log(sum(2, 3)); // 5

#函数作为参数

在JavaScript中,函数也可以作为参数传递给其他函数。例如,我们可以定义一个函数来遍历数组,并调用另一个函数处理每一项:

          
  • 1
  • 2
  • 3
  • 4
  • 5
function forEach(arr, fn) { for(let i = 0; i < arr.length; i++) { fn(arr[i]); } }

该函数接收一个数组和一个函数作为参数。然后,函数内部会遍历数组中的每一项,并使用传入的函数处理每一项。 假设我们有一个数组[1, 2, 3]和一个输出函数console.log,我们可以这样来使用上面的forEach函数:

          
  • 1
  • 2
const arr = [1, 2, 3]; forEach(arr, console.log); // 1 2 3

#函数的属性和方法

在JavaScript中,函数也是一种对象,因此可以添加属性和方法。例如:

          
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
function multiply(a, b) { return a * b; } multiply.version = "1.0"; // 添加版本号属性 multiply.author = "John Doe"; // 添加作者属性 multiply.getDescription = function() { // 添加描述函数 return `This is a function to multiply two values. Version: ${this.version}, Author: ${this.author}`; };

上面的例子中,我们创建了一个名为multiply的函数,并向它添加了三个属性:一个版本号属性、一个作者属性和一个getDescription函数。

然后,我们就可以这样来访问这些属性和方法:

          
  • 1
  • 2
  • 3
console.log(multiply.version); // 1.0 console.log(multiply.author); // John Doe console.log(multiply.getDescription()); // This is a function to multiply two values. Version: 1.0, Author: John Doe

#箭头函数

在ES6中引入了箭头函数的概念。箭头函数是一种更简洁而且可读性更高的函数语法。箭头函数使用一个箭头(=>),代替了传统函数中的function关键字。 箭头函数的基本语法如下所示:

          
  • 1
  • 2
  • 3
(parameter1, parameter2, ..., parameterN) => { // 函数体(代码块) }

与传统函数不同,箭头函数有以下特点:

  • 当只有一个参数时,括号是可选的;
  • 当函数体只有一条语句时,花括号及return关键字都是可以省略的。这时候所返回的结果就是该语句的结果。 例如下面的两个函数等价:
          
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
// 传统函数形式 function square(x) { return x * x; } // 箭头函数形式 const square = x => x * x;

#结束语

以上就是JavaScript中函数的主要内容。函数是JavaScript中非常重要的概念,它是实现代码重用和抽象化的基础之一。在学习JavaScript的过程中,深入理解和熟练掌握函数的使用和设计,对我们编写高质量的JavaScript代码至关重要。

自由转载 - 署名 - 非商业性使用
https://zhangwurui.cn/article/13
0/0条看法
访客身份
在下有一拙见,不知...
期待你的捷足先登