JavaScript函数

82 阅读3分钟

「这是我参与11月更文挑战的第12天,活动详情查看:2021最后一次更文挑战」 。

定义:

1.作用:

存储代码,解决代码’复用‘的问题

2.语法:

步骤(1)声明函数:是一个存储过程,在声明的时候不会执行

function 函数名() {

函数主体内容

}

步骤(2)调用函数:执行函数体代码

函数名()

a.函数一定要调用,不调用里面的内容没办法执行

b.函数一段代码在多个地方执行一次,函数是强调复用,多人共用一段代码,用一次调用一次,

c.循环是一个代码在一个地方执行多次

d.封装:把一段需要复用的代码放到函数里

3.函数参数

(1).函数参数的用法:

调用者 传值 给函数

(2).语法:

function 函数名(形参) {

函数主体内容

}

(2)调用函数:执行函数体代码

函数名(实参)

传参的本质:实参给形参赋值

(3)实参与形参

function fn(形参) {}

fn(实参);

调用函数的时候将实参传给形参

 let du = function fn(x , y) {
                return [x, y];
            }
            // 如果没有传参,就执行形参里的默认值,如果有参,就调用实参
        fn();
        fn(1, 2);

如果不知道用户给的值是空的还是有数字的,为了确保输出的不是undefined,有以下两种解决方案

方法一:给形参两个默认值,如果用户没有给值,函数就会自动执行默认值里的值,如果给了实参,就调用实参

 let du = function fn(x = 0, y = 0) {
                return [x, y];
            }
           
        fn();
        fn(1, 2);

方法二:x有值,就让x=x,如果没有值,就让x=0;y同理

 let du = function fn(x, y) {
                x = x || 0;
                y = y || 0;
                return [x, y];
            }
            // 如果没有传参,就执行形参里的默认值,如果有参,就调用实参
        fn();
        fn(1, 2);

4. 分类:

(1)具名函数:申明定义了名字的函数

(2)匿名函数 没有名字的函数

5.作用域

(1)全局作用域

(2)局部作用域

(3)区块作用域

6. 函数执行的流程:

1.传参

2.执行函数体

3.返回结果给调用者

7. 函数的返回值return(重点):

(1)写法:

function fn(形参) {

函数体

return 返回者

}

fn(实参);

(2)调用返回值:

let 变量名 = 函数名( )

(3)为什么要让函数有返回值?

(1)为了方便后面被其他程序调用。

(2)执行函数后会得到结果,结果是调用者想要得到的数据

(4)函数返回值的作用:函数传递数据给调用者

(5)return的注意事项:

(1)return后面的内容不可以换行,因为return有退出函数的作用,换行的内容不会被执行

(2)return如果需要返回多个值,用数组return[返回值1,返回值2...],因为数组可以储存多个数据

(3)函数默认没有return返回值,需要有返回值写return

(4)

(a)无参无返回,

(b)有参无返回,

(c)无参,有返回。

(d)有参有返回

如果函数没有return,则默认返回给调用者undefined

如果有return,无返回值:return后面的条件不执行,返回undefined