4 - 函数

本文详细介绍了JavaScript中的函数,包括内置函数、自定义函数的定义和调用,函数的本质是存储代码的对象。讨论了带参数和返回值的函数,以及匿名函数的使用。预解析的概念被提及,说明了变量和函数定义的提升过程。文章还阐述了作用域和作用域链的重要性,以及如何在函数中使用递归进行计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

函数

内置函数

自定义函数

函数的本质

定义函数:

存储代码的数据类型:

函数的本质:

带参数的函数

形参:

实参:

带返回值的函数

匿名函数

匿名函数如何使用?

预解析

预解析具体在干嘛?

函数嵌套

作用域

作用域链:

递归函数:


函数

        函数也是一个对象

        函数中可以封装一些功能(代码),在需要时可以执行这些功能(代码) 

        函数中可以村一些代码在需要的时候调用

内置函数

js内部提供的

isNaN()

String()

Number()

alert()

confrim()

自定义函数

自己定义自己使用

语法:

function 函数名称() {

    重复执行的代码段

}

调用函数:

 让函数运行起来

语法:

函数名称()

函数的本质

定义函数:

其实也是在定义变量 , 就是在内存中开辟空间,存储一段代码进入

存储代码的数据类型:

function

函数的本质:

一个比较特殊的变量,存储的是一段代码,类型是function类型,这段代码要运行就  --- 函数名()

带参数的函数

形参:

在定义函数的小括号中,可以放入多个预定义好的变量

实参:

给形参赋值,让形参在函数内有具体的数据

实参可以是一个对象,也可以是一个函数

带返回值的函数

当我们调用函数后,需要得到一个结果

就需要在函数内 return  结果

return后面的代码不执行

只能返回一个值,不能返回对各

返回值可以是任意的数据类型

        可以是一个对象,也可以是一个函数

匿名函数

没有名字的函数叫匿名函数

匿名函数的使用,只能把它赋值给一个变量

匿名函数如何使用?

        1.将他赋值给一个变量

        2.()括起来,后面再加()  表示这个函数定义好就立即调用 --- 立即执行函数/自调用函数

        3.立即执行函数往往只会执行一次

语法:

( function() {

console.log( )

} )    ()

break,continue和return的区别?

使用break可以退出当前的循环

使用continue用于跳过当次循环

使用return可以结束整个函数

预解析(变量的提升)

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

预解析具体在干嘛?

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

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

当预解析的时候,函数名和变量名同名冲突了,会忽略变量名的预解析,保留函数名的预解析

js中报错会中断代码执行,报错后的代码是不执行的

函数嵌套

函数大括号中可以放任意代码

可以有函数定义

可以有函数调用

作用域 

能起到作用的区域。定义在不同地方的变量或者函数,作用的地方是不一样的。全局变量,作用于整个网页。局部变量,作用于函数内部。

全局作用域

    全局变量 - 定义在函数外的变量 - 作用域是整个页面

局部作用域

    局部变量 - 定义在函数内的变量 - 作用域是函数内部

    局部可以访问到全局的变量,全局访问不到局部的变量

作用域链:

由作用域嵌套形成的一条链式结构

当我们将一个变量当做是一个具体的数据使用的时候,先在当前作用域中找是否定义过这个变量,定义过:直接使用;没有定义过:就去上级作用域中去找,....直到全局,如果全局也没有定义过,报错
当我们给一个变量空间赋值的时候,先在当前作用域中找是否定义过这个变量,定义过:赋值成功,修改的是当前作用域中的这个变量;没有定义过:就去上级作用域中找,....直到全局,全局找到了,就是在给全局变量赋值,如果全局也找不到,就会在全局定义这个变量并赋值

递归函数:

在函数内调用自己

计算一个数字以内的累加

function fn(n) {

    if(n === 1) {

        return 1

    }

    return n + fn(n-1)

}

var s = fn(5)

console.log(s);

按着ctrl+方向键(上下)可以挪动代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值