JavaScript-函数上

本文介绍了JavaScript中函数的基本概念,包括函数的定义、调用方式,带参数和返回值的函数,匿名函数及自调用函数的使用,以及函数的预解析和嵌套。强调了函数作为代码段的可复用性及其在内存中的存储方式。

一、概念:

函数就是具备某个功能的一个工具。是完成某个功能的一段代码。

二、函数语法

1、定义语法:

function 函数名(){
	代码段
}
# function是一个关键字,函数名自定义,定义规则和变量的定义规则相同

当我们定义好函数,并在页面中刷新的时候,会发现这段代码并没有被执行。因为函数定义好后,是不会自动执行的,需要我们进行调用。

2、函数的调用:

语法:
	函数名()

调用的语法很简单,这样我们以后还需要执行函数中的代码的时候,就不用再重写那么多的代码了,只需要简单的将原来定义好的函数进行调用即可。

// 定义函数:求两个数的和
function fn(){
    var a = 1;
    var b = 2;
    var c = a + b;
    console.log(c);
}
// 函数定义好以后,不会自动执行,需要手动调用
fn();

3、带参数的函数:

函数代码中会发生改变的值用变量来代替,入口是声明函数时的小括号

function zizeng(a){  // 叫做形参 - 形式上的参数
    var b = a + 1;
    console.log(b);
}

调用函数的时候,需要给参数赋值

zizeng(1); // 实参 - 实际上的参数,实参其实就是给形参赋值

声明函数时候带进去的那个参数叫形参

调用函数的时候给形参进行赋值的实际值是实参

三、函数的本质

当我们去调用函数的时候,通过函数的名称就可以调用到,那说明我们在定义函数的时候,函数就已经保存起来了,所以下面才能调用出来。

函数定义在内存中的体现:

function fn(){
    console.log(11)
}

这段代码,在内存创建了一个空间,名字叫fn,这个空间中存储的数据是函数这整段代码。

调用函数,就相当于将这段代码拿出来执行。

四、匿名函数

没有名字的函数叫匿名函数,匿名函数不能单独存在,会报错:

function(){
    console.log(13)
}

除非将这个函数用小括号括起来:

(function(){
    console.log(13)
})

但是这种没有名字的函数就无法调用了,js提供了一个专门用来调用匿名函数的语法:

(function(){
    console.log(13)
})()

后面加小括号就表示调用,这种定义并调用函数的语法,叫做自调用函数。即,函数定义好立即调用。

自调用函数也可以不给函数加小括号,在函数前加感叹号或波浪线:

!function(){
    console.log(14);
}()

~function(){
    console.log(14);
}()

同样是立即执行的函数。这种函数也是可以传参数的

五、带返回值的函数

之前的函数,在调用后,就是将函数中的代码执行了,没有得到一个结果,如果我们希望函数调用后得到一个结果,在后续的代码中,需要用到这个结果,例:

// 求三门成绩的和
function add(ch,math,en){
    var sum = ch + math + en;
    console.log(sum)
}
// 根据函数中求出的和,计算平均数
var avg = add(20,30,40)

上面的函数是没有办法实现的,此时,需要使用函数的返回。

return在返回结果的时候,只能返回一个结果,不能返回多个

return总结:

  1. 终止代码继续运行

  2. 函数运行后返回一个结果,只能返回一个

六、预解析

预解析:提前去分析代码

浏览器在运行js代码之前,会先将所有js代码进行分析 - 预解析

预解析具体在干嘛?

在所有的代码中找 变量的定义 和 函数的定义。找到了就将变量的定义代码和函数的定义代码,提升放在所有代码的最前面。

在执行的时候,按照解析后的代码进行执行。

var a // 变量定义
console.log(a); // undefined - 因为预解析的时候已经将定义变量a的代码提升在了所有代码的前面了
a = 20 // 变量的赋值


fn()
function fn() {
    console.log(111);
}

七、函数的嵌套

函数结构中的大括号,里面放的是代码段,既然是代码段,就可以写判断、循环甚至函数代码,这样就形成了函数的嵌套。

function fun() {

    console.log(666);

}

function fn() {

    // 代码段

    /*

        定义变量

        运算

        分支

        循环

        函数调用

        定义函数

    */

    fun()

}

fn()

八、函数的调试

 示意图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

—— Alone � ??

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值