【金秋打卡】第9天 从函数到函数式编程之路

2022/11/2 4:24:56

本文主要是介绍【金秋打卡】第9天 从函数到函数式编程之路,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

课程名称:破解JavaScript高级玩法
课程章节:第6章 从函数到函数式编程之路
主讲老师:Cloud

课程内容:

今天学习的内容包括:
6-11 手写call居然隐藏十大知识点——call在严格模式和非严格模式情况下的不同情况的知识点了解。
6-12 综合训练

课程收获:

手写call知识点
  • eval
  • new Function
  • 内容安全策略CSP
  • 属性冻结
  • 对象属性检查
  • 面试感知
  • ECMA规范和浏览器厂商之间的爱恨情仇
  • undefined
  • —元运算符void
  • 数据类型判断
  • 严格模式和非严格模式
  • this
  • 运行环境识别
  • 一元运算符delete
  • 函数副作用
手写的思路
  • 某个方法进行call调用时,等同于把方法作为call的第一个参数某个属性,并进行进行调用。
  • fun.call(obj, …args) === ( obj.fun= fun; obj.fun(…args) )
版本2存在的问题
  • this是不是可以被调用
  • undefined安不安全
  • window作为默认上下文,过于武断
  • eval一定会被允许执行吗
  • delete context.fn有没有产生副作用
不可靠的undefined
  • 有可能被改写
  • void 0
环境识别
  • 浏览器环境
  • nodejs环境
  • 综合判断
严格模式
  • 是否支持严格模式
  • 是否处于严格模式
函数副作用
  • 函数调用后,破坏了原对象
基于eval的实现
  • 有没有严格模式
  • 支不支持严格模式
  • 获取全局对象
  • 判断是不是函数
  • 包装上下文
  • 生成属性名
  • 拼接动态参数
基于eval的实现
  • 严格模式下的妥协
  • 属性名依旧是可能重名
  • eval可能被禁用
基于new Function的实现
  • 动态参数
  • 对象可能被冻结,Object.freeze
课后练习
  • 如果有效的判断被执行的函数是否在严格模式下执行
  • 请解决传入的thisArg被冻结的问题

今天 学习了手写call居然隐藏十大知识点,这些底层属性点相关的知识点掌握还是不够的,自己听着也是很迷糊,不知道有什么用处,还是要多学多用。对自己说一句,加油😀~

坚持打卡,坚持学习!明天见💪~

https://img1.sycdn.imooc.com/6360d2910001028f24991344.jpg

https://img2.sycdn.imooc.com/6360d975000185f925321364.jpg



这篇关于【金秋打卡】第9天 从函数到函数式编程之路的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程