函数小结

1、【函数的定义】

1.1、JavaScript 使用关键字 function 定义函数。函数可以通过声明定义,也可以是一个表达式。

1.2【函数的作用】

实现特定功能的代码,可复用。

1.3【函数的封装】

即把可以实现一定功能的代码,封装成一个函数。

1.4【函数的好处】

1、提高开发效率

2、复用,减少代码量

3、开发、维护、更灵活,把功能分开来写,团队开发效率高

4、参数、返回值,让函数更灵活

 

1.4.【函数的三要素】

1. 函数名

2. 返回值return

               注:函数100%有返回值。

   注: 若写了,则返回return后的内容。若没写return则返回undefined

注:return具备终止函数的功能。若需要返回多个值,需要return后面的内容是引用数据类型。

3.参数

1、形参(形式参数)

在函数声明的时候

2、实参(实际参数)

在调用函数的时候

注:形参的个数比实参多,多的形参数为undefined。实参的个数比形参多,多的实参数不会使用。

 

2、【函数的声明】

2.1字面量声明function    F70    ()   {函数体}

2.2构造函数声明let     F70     =     new Function();

 

3【调用函数(执行函数体)】

书写格式:函数名 小括号

//    函数会不会执行不代表调用,执不执行取决于函数是否被调用

function serach() {

    console.log(`您的当余额为1000`);

}

//  调用函数,此时才能执行{}中的console.log(`您的当余额为1000`)

serach();

 

4、【匿名函数】

//函数表达式(匿名函数表达式)

let F70 = function F71() {

    console.log(`asdadasd`);

}

F70();//asdadasd

F71();//F71 is not defined

console.log(F70.name);//F71  (F70的名字是F71,但是调用的时候不能使用F71(),还是必须使用F70()调用,否则会报错F71 is not defined)

 

5、【类数组】

函数名.arguments

arguments是函数的属性,返回所有的实参内容

可以类似于数组的使用方式进行值的获取

注:

1、形参和实参都写在{}中

2、形参与实参一一对应

3、以形参接收为主,新参与实参可以同名,不能以name 与name 对比接收

4、函数的调用,在函数调用的时候是实参

 

let inputName = "YY"

let inputAge = 18;

let inputGender = ""

let hobby=1234

let num=1000

arr(inputNameinputAgeinputGender,hobby,num);

function arr(nameagegenderhobby) {

   //arr函数的声明,在函数声明的时候是形参。

   console.log(`你好

                   我叫${name}

                   今年${age}

                   我是${gender}

                   我的爱好是${hobby}

   `);

   //输出所有实参内容

   console.log(arr.arguments);

   console.log(arr.arguments[arr.arguments.length-1]);

//    输出所有实参的个数

   console.log(arr.arguments.length);//5

   //函数名.length 输出的是形参的个数

   console.log(arr.length);//4

};

 

6、【不定参数  ...形参】

注:

1、接受多的实参内容(以数组形式)

2、只能写在最后一个形参位置(其他位置,会报错)

function arr1(ab, ...c) {

    console.log(abc);

    console.log(arr1.length); //2

}

arr1(123456);//1 2 [ 3, 4, 5, 6 ]

function arr2(a, ...b,c) {

    console.log(abc);

    console.log(arr2.length);

}

arr2(123456);//报错(Rest parameter must be last formal parameter)

 

7、【箭头函数】

1、省略function关键字

2、如果只有一个形参,可以省略小括号

3、如果函数体只有一条语句,可以省略打括号

4、如果函数体只有一条语句,并且需要返回这条语句的结果。

       则可以省略return关键字

5、不可以使用arguments

6、不会把自己的this绑定到函数上

7、不可以用作构造函数

let arr1 = a => a + 1;

let arr2 = arr1(100);

console.log(arr2);//101

 

let arr3 = (ab, ...c=> {

    let f00 = a + b;

    return f00;

}

console.log(arr3(12)); //3

 

8、【回调函数】

当一个函数A,提供给函数B当参数,则A就是回调函数

function a(temp) {

    console.log("F70");

    temp();

 }

 function b() {

    console.log("F71");

 }

 a(b);//F70F71都会输出

 

 

 

9、【数组的排序】

9.1升序与降序

let arr3 = [130511850];

// 升序

let arr1 = arr3.sort((ab=> a - b);

console.log(arr1);//[ 1, 5, 8, 11, 30, 50 ]

// 降序

let arr2 = arr3.sort((ab=> b - a);

console.log(arr2);//[ 50, 30, 11, 8, 5, 1 ]

 

10、【数组的方法every】

类似于"与",一假全假。

判断数组中的每个值,是不是都满足需求

注:所有都满足返回true,有1个不满足,则返回false

let arr = [130511850];

let state = arr.every(a => a % 2 == 0);

console.log(state); //false

11、【数组的方法some】

类似于"或",一真全真。

判断数组中的每个值,是不是都满足需求

注:只要有1个满足,就返回true,都不满足才会返回false

let arr = [130511850];

state = arr.some(a => a % 2 == 0);

console.log(state); //true

12、【数组的方法filter】

过滤。

返回满足条件的值

let arr = [130511850];

let state = arr.filter(a => a % 2 == 0);

console.log(state); //[30,8,50]

13、【数组的方法map】

遍历数组中的每个值,执行箭头函数的操作,并把最终结果,已数组的方式返回。

(有返回值)。

注:不会改变原数组。

let arr = [130511850];

let state = arr.map(a => a % 2 == 0);//[ false, true, false, false, true, true ]

let state = arr.map(a => a-1);//[ 0, 29, 4, 10, 7, 49 ]

console.log(state);

 

14、【数组的方法forEach】

遍历数组中的每个值,执行箭头函数的操作,并把最终结果.

(无返回值)

注:不会改变原数组,不能使用break

let arr = [130511850];

let state = arr.forEach(a => a-1);

console.log(state);//undefined(说明无返回值);

arr.forEach(a => { console.log(a - 1); });//0

                                          //29

                                          //4

                                          //10

                                          //7

                                          //49

 

15、【立即执行函数】

创建即调用,调用即销毁

适用场景:关于一次性变量(时间)

(function F70() {

    console.log("F70");

})();

 

16、【交集、并集、差集】

16.1交集

let arr1 = [123];

let arr2 = [234];

let intersect = arr1.filter(a => arr2.includes(a));

console.log(intersect);//[2,3]

16.2并集

let arr1 = [123];

let arr2 = [234];

let union=new Set([...arr1,...arr2]);

console.log([...union]);//[1,2,3,4]

16.3差集

let arr1 = [123];

let arr2 = [234];

let difference = arr2.filter(a => !arr1.includes(a));

console.log(difference);//4

 

©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页