ES5-7 立即执行函数、闭包深入、逗号运算符

1. 立即执行函数

  • 定义在全局的函数只有关闭浏览器或者退出程序才会释放
  • IIFE: Immediately-Invoked Function Expression
  • 解决页面加载自动执行,执行完成后立即释放(避免了只会执行一次的内容一直存在于全局)
  • IIFE用匿名函数或者函数声明(会忽略函数名)都是一样的效果,执行完成后立即释放
  • 一定是表达式才能被执行符号执行
  • 表达式会忽略函数名 → 函数表达式如果命名了a,不会被声明
  • 连续写2个立即执行函数,要用分号间隔(习惯是在最前面加分号)
    在这里插入图片描述
    在这里插入图片描述

延伸:函数名

  • 总结:找名字无限制,调用有限制
  • 表达式后的函数若有名字a,调用.name打印出a(不管在函数内部还是外部,.name都能获得名字)
var test = function a() {
   
    console.log(arguments.callee)
    console.log(test.name) // a
    a() // 只能在内部调用
}
test()
console.log(test.name) // a
console.log(a) // 报错

在这里插入图片描述

  • 延伸 声明变量test若是匿名函数,调用.name打印出test
var test = function () {
   
    console.log(test.name) // test
    console.log(arguments.callee)
}
test()
console.log(test.name) // test

在这里插入图片描述

  • 但直接打印a总是会报错,因为a没有被声明
var test = function a() {
   
    console.log(arguments.callee)
}
test()
console.log(test.name)
console.log(a)

在这里插入图片描述

  • 题目-这里可没有函数,无形参,这个题目考的是,表达式会忽略函数名
    1h22min

                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值