亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

【金秋打卡】第9天 從函數到函數式編程之路

標簽:
JavaScript

课程名称:破解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://img1.sycdn.imooc.com//6360d975000185f925321364.jpg

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消