函数的执行过程

本文详细探讨了JavaScript中函数的定义和执行过程,包括创建阶段的开空间、赋值、代码存放,执行阶段的形参赋值、预解析和代码执行。还涉及了全局和函数内部的预解析机制,以及函数调用、形参和实参、return语句和函数与事件的结合等关键概念。
摘要由CSDN通过智能技术生成

函数的定义阶段
1、开空间
2、把这个空间的地址给到函数的名字
3、把代码放到这个空间里面(当成字符串放进去 不会解析变量)
函数的执行阶段
1、通过函数的名字(地址)找到这个函数空间
2、形参赋值
3、函数内部预解析
4、函数内部代码执行

全局预解析
1、全局声明一个变量 num 可用
2、全局声明一个变量 fn 可用 并且是一个函数的地址
代码执行
1、num = 100
2、fn()
- 通过 fn 这个地址 找到函数空间
- 形参赋值
a = 10
- 函数内部预解析
1、函数内部声明一个 变量 a 可用
- 函数内部代码执行
1、a = 100 把函数内部的这个 a 赋值为 100
2、console.log(a)

    // var num = 100
    // function fn (a){
    //     var a = num
    //     console.log(a)
    // }
    // fn(10)

函数调用
1、通过 fn 找到这个函数空间
2、形参赋值
3、函数内部预解析
- 1、函数内部声明一个变量 a 可用
- 2、函数内部声明一个变量 a 可用 并且是一个函数的地址
- 3、函数内部声明一个变量 a 可用
4、函数内部代码执行
- 1、a() => 我是 函数内部 a 函数(声明式)
- 2、a = 10 给函数内部的 a 赋值为 10
- 3、a() 10() => 报错 a is not a function

    function fn() {
        a()
        var a = 10

        f
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值