【金秋打卡】第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居然隐藏十大知识点,这些底层属性点相关的知识点掌握还是不够的,自己听着也是很迷糊,不知道有什么用处,还是要多学多用。对自己说一句,加油😀~
坚持打卡,坚持学习!明天见💪~
这篇关于【金秋打卡】第9天 从函数到函数式编程之路的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)