函数、预解析、参数、参数列表、抛出异常、捕获异常

函数

命名函数

匿名函数

构造函数

纯函数

预解析

关键字var和function开头的语句块提前进行处理

  • 处理过程:当变量和函数的声明处在作用域比较靠后的位置的时候,变量和函数的声明会被提升到作用域的开头。

解释代码和执行代码

  • 因为是在所有代码执行之前进行解释,所以叫做 预解析(预解释)
  • 需要解释的内容有两个
    • var 关键字
      • 在内存中先声明有一个变量名
      • 会把 var 关键字声明的变量进行提前说明, 但是不进行赋值
    • 声明式函数
      • 在内存中先声明有一个变量名是函数名,并且这个名字代表的内容是一个函数
      • 也就是会把函数名进行提前声明, 并且赋值为一个函数
  • 注意点
    • 赋值式函数 var fn=function(){} 按照var的规则进行解析
    • 在预解析阶段如果变量名和函数名重名了,最终的解析结果是函数为准,也就是函数的优先级高于变量名
    • 在if语句中,不管条件是否成立,里面的代码都会进行预解析
    • return后面的代码虽然不执行,但是会进行预解析
  • 结论:

通过预解析,我们知道函数名不要和变量名重名

声明式函数可以先调用,尽量不要先调用/尽量使用赋值式函数来定义

预解析重名情况

多个预解析存在情况

按照这个顺序预解析

1、 匿名函数的名称变量

2、 实参变量

3、函数内 function定义的命名函数

4、var 定义并且赋值的变量

预解析特殊情况

参数


arguments参数列表

arguments可以调用函数

ES6严格模式下面两个方法将会被禁用,调用时报错

arguments.callee  指向当前函数 当函数是匿名函数时,如果需要再次调用可以使用这个方法

函数.caller 指向的是当前函数被执行的上下文环境函数

抛出异常

捕获异常

即使出现错误也可以继续执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值