函数的使用

本文详细介绍了JavaScript中的函数概念,包括函数的参数传递、返回值处理、形参和实参的区别,以及作用域(全局和局部)的概念,以及函数的执行顺序规则。

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

1.函数的定义

函数是一种引用数据,也是一种特殊的对象,是对象就能使用点语法。

2.函数的参数

形参:

函数定义的时候,函数名后面括号里的内容。(不存在实际变量)

 function fx(a) {}

实参:

函数调用的时候,函数名后面括号里的。(实参可以是常量、变量或表达式。)

  fx(a)

函数调用一般是指将实参的值赋给形参,在赋值的过程中,函数里的arguments(数组类型)会接收调用所给的所有的值,并将其保存为数组,然后按排列顺序赋给函数。

 function fn(a,b) {
            console.log(arguments[0],arguments[1]);
        }
        fn(1,2)

打印值为,1,2。

既然实参值赋给形参,那么便会出现实参个数多余于形参个数(arguments.length>fn.length)和实参个数小于形参个数(arguments.length<fn.length)。

arguments.length>fn.length

多余值仍存在arguments中不被使用,对函数没有过多影响,但会增加内存,影响性能。

function fx(a,b) {
            console.log(a);
            console.log(b);
            console.log(a+b);
            console.log(arguments[2])
        }
       fx(1,2,3)

打印的结果为a为1,b为2,a+b为3,arguments【2】为3

arguments.length<fn.length

形参没有被赋值的值为undefined

  function fx(a,b) {
            console.log(a);
            console.log(b);
        }
       fx(1)

打印a为1,b为undefined

3.函数的返回值

函数调用一定会生成一个结果,该结果可以使用与不使用但必定存在。

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

标准返回

 function fx(a,b) {
            a=2
            return a
        }
       a=fx(1)
       console.log(a);

打印结果为2

异常返回

只会返回undefined

1.没有执行return  

function fx(a,b) {
            a=1
        }
       a=fx(1)
       console.log(a);

2.执行了return 但是只有return,后面没有表达式 

 function fx(a,b) {
            a=1
            return
        }
 a=fx(1)
       console.log(a);

都打印undefined。

4.函数的执行顺序

作用域

一个标识符它在哪些地方能被正常使用,这些地方就是这个标识符起作用的地方,称之为标识符的作用域

全局作用域

直接编写在 script 标签之中的JS代码,也可以是外部引入的js代码,可以作用于所有script的,是全局作用域。

 var a=1
        function fx(a,b) {
            a=2
            return a
        }

这里的var a=1便是全局作用域。

局部作用域(函数作用域)

1.一般在函数内部就是局部作用域,这个代码的名字只在函数的内部起作用。

2.每调用一次函数就会创建一个新的函数作用域,它们之间是相互独立的。

3.调用函数时创建函数作用域,函数执行完毕之后,函数作用域销毁。

 var a=1
        function fx(a,b) {
            a=2
            return a
        }

这里的a=2便是局部作用域。

函数执行顺序规则

1.访问一个标识符时  先访问当前作用域,没有就访问外层作用域 直到全局作用域

var a=10
function fx() {
            var a=10
            return a;

        }
        var a=1
       console.log(a)
re=fx()
console.log(re)

这里打印的re为10,a为1。

2.函数调用一次就会运行一次,而且函数调用如果在A作用域 它是在B作用域生成的 那么函数运行代码在B作用域

 var a = 100
        function fn() {
            var a = 20
            function fm() { console.log(a) }
            return fm
        }
        var re = fn()
re()

这里打印的值为20

执行顺序(简易顺序)

  1.形参或者局部变量的声明

   2.实参赋值给形参变量

   3.函数内部会声明

   4.运行代码

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

神明也犯困

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

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

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

打赏作者

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

抵扣说明:

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

余额充值