上一节我们详细讲解了JS中的匿名函数,本节我们将深入学习JS函数的参数。在JS中,函数参数是用于接收传递给函数的值或引用的变量。函数可以有零个或多个参数,参数可以被用来在函数内部进行计算或操作。

JS函数中的参数有以下几种形式:

1. JS函数中的参数可以0个或是任意个。

  /* JS函数中的参数可以0个或是任意个 */
  /*无参数情况*/
  function f1(){
    console.log('f1');
  }
  /*单个参数情况*/
  function f2(a){
    console.log('f2');
  }
  /*多参数情况*/
  function f3(a,b,c,d,e,f,g){
    console.log('f3');
  }
  f1(),f2(0),f3(0,1,2,3,4,5,6)//控制台成功打印f1、f2、f3

2. 默认参数:在使用参数时对参数进行初始化。

 /* JS函数中的默认参数 */
   function f(a=0){
    console.log(a);}
    f(1); // 实际打印 1,因为传入了参数1,不会使用默认值0
    f();  // 打印 0,因为没有传参,使用默认值

3. 剩余参数:通过(...rest)来标识不确定参数,rest实质是一个数组。

/*剩余参数*/
function f(a,b,c,...rest)
{
  console.log(rest);
}
f(1,2,3,4,5,6,7);//除去前三个参数全部打印,也就是4,5,6,7

4. 解构参数:解构参数允许在函数参数位置直接解构对象或数组,从而直接提取所需的属性或元素。

 /*解构参数*/
 //准备一个数组和一个对象
 const arr=[0,1,2]
 const obj ={brand:'Dotcpp编程',website:'dotcpp.com',content:'do coding',storage:99999999}
 /*(ES6前)传统函数下,当参数是数组或对象时,我们需要对其进行解构才能使用*/
 function f1(arr)
 {
  const arr0=arr[0]
  const arr1=arr[1]
  const arr2=arr[2]
  console.log(arr0,arr1,arr2);//  0 1 2
 }
 function f2(obj)
 {
  const brand = obj.brand
  const website = obj.website
  const content = obj.content
  const storage = obj.storage
  console.log(brand,website,content,storage);//Dotcpp.html:40 Dotcpp编程 dotcpp.com do coding 99999999
 }
 f1(arr),f2(obj);
 /*(ES6后引入解构参数)我们可以对其直接使用*/
function f3([a,b,...z])
 {
  console.log(a,b);//  0 1
 }
 function f4({brand,website,...rest})
 {
  console.log(brand,website);//Dotcpp编程 dotcpp.com
 }
 f3(arr),f4(obj);

5. arguments对象:arguments是一个在传统函数内部可用的类数组对象,它包含了传递给函数的所有参数。

/*arguments对象*/
/*arguments对象的本质是将参数转存在一个类数组对象里*/
/*值得注意的是,箭头函数没有arguments对象*/
function f(a,b,c,...rest)
{
  console.log(arguments.length);
}
f(1,2,3,4,5,6,7);//7

总结:本节深度剖析了JS中函数参数的各种形式,让读者对JS里的函数的参数有了一个全面而清晰的认识。

点赞(241)

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

Dotcpp在线编译      (登录可减少运行等待时间)