js部分的复习(3)

36 篇文章 0 订阅
25 篇文章 0 订阅

1.变量提升
这里相当于在函数体内部先var a , console.log(a),a=4

var a = 3
  function fn () {
    console.log(a)
    var a = 4
  }
fn()//undefined

2.测试题

  测试题3:
   */
  var c = 1
  function c(c) {
    console.log(c)
    var c = 3
  }
  c(2) // 报错

相当于
var c
function c( c ){
console.log( c )
var c =3
}
c=1
c(2)

3.作用域
这里全局里有两个函数作用域,在函数show()中执行fn(),所以fn()要去找x的值,自身没有,去全局找,找到,结果为x = 10
在这里插入图片描述

  var obj = {
    fn2: function () {
     console.log(fn2)
     //console.log(this.fn2)
    }
  }
  obj.fn2()

这道题会报错,找不到fn2,因为在函数作用域找,找不到,去全局找,没有,要想找到那个fn2,就要this.fn2

4.闭包(这里较复杂的题还是不懂,有时间去知乎找找,加深下理解)

1.闭包的作用
(1)使用函数内部的变量在函数执行完后, 仍然存活在内存中(延长了局部变量的生命周期)
(2)让函数外部可以操作(读写)到函数内部的数据(变量/函数)

2.如何产生闭包?
当一个嵌套的内部(子)函数引用了嵌套的外部(父)函数的变量(函数)时, 就产生了闭包

4.闭包到底是什么?
使用chrome调试查看
理解一: 闭包是嵌套的内部函数(绝大部分人)
理解二: 包含被引用变量(函数)的对象(极少数人)
注意: 闭包存在于嵌套的内部函数中

5.事件处理机制
模型的运转流程

  • 执行初始化代码, 将事件回调函数交给对应模块管理
  • 当事件发生时, 管理模块会将回调函数及其数据添加到回调列队中
  • 只有当初始化代码执行完后(可能要一定时间), 才会遍历读取回调队列中的回调函数执行
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值