JavaScript高级程序设计第四版
戴师帮忙选的important point
第二章 HTML 中的 JavaScript
问题
- 第2.1中提到type中设置为module,代码当成了ES6模块,需要实践来验证。
- 第2.1中提到浏览器不会对文件扩展名进行检测,为服务器动态生成js提供可能性,不是很理解。
- 第2.1不是很懂其中提到的MIME的作用及判断原理
- 第2.1中提到src中url的请求策略,不理解同源策略
- 第2.1.2中推迟脚本执行中提到DOMContentLoad事件,没见过,下次学习一下HTML
- 第2.1.3async可以保证脚本在页面load事件之前执行
理解与解决
第三章语言基础
学习与反思
- 声明的提升
补充:Event Loop
var,let与const在for中的使用
setTimeOut会在for循环结束后进行输出,var在这里读取的是一个全局变了 $i$ ,所有只会输出五,但是JavaScript引擎会为for循环中的let声明分别创建独立的变量实例,所以有五个 $i$ 进行输出。
问题与解释
- 第3.4.5中提到八进制和十六进制在数学操作中都被视为十进制,什么意思?
答:都转化为十进制再进行计算。
- 第3.4.7中为什么要避免Symbol()包装对象?
解:对象是引用类型,返回的是指针,针对同一类型的对象是同一个指针,这就与Symbol()矛盾了。
3. 第3.4.7.4的使用Symbol实现异步迭代以及后续的内容不是很懂。
解:重构了迭代函数
4. 第3.4.7.16中with环境啥意思
解:
- 第3.6.7中标签语句进行学习
解:
第四章变量、作用域与内存
问题与解
- 第4.2.2中let与var的提升的区别,let提升出现暂时性死区啥意思?
2. 第4.3.4.3中提到内存泄漏的原因,那么如何检测内存泄漏呢?
第五章基本引用类型
- 引用值与传统面向对象编程语言中的类相似,但实现不同?理解
第六章集合引用类型
- 第6.2.4中提到会出现无法判断一个对象是否为数组的现象?
- 第6.2.13中迭代器的作用域对象的使用。
- 第6.3.4中提到的上溢和下溢不是很懂。
4. 第6.9中,“每种包装类型都映射到同名的原始类型”什么意思?
5. 第6.9中,“在以读模式访问原始值时,后台会实例化一个原始值包装对象,通过这个对象可以操作数据。”?
6. 第6.9中,“涉及原始值的语句只要一执行完毕,包装对象就会立即销毁。”?
第七章迭代器与生成器
问题与解决
- 第7.3.2.4中描述到yied*实现递归,没看懂代码
第八章对象、类与面向对象变成
- 第8.1.7中对象结构中提到解构在内部使用函数这块不是很懂
结构这的语法糖还是比较怪的,建议都看
- 第8.3.2.2中提到盗用构造函数的缺点不是很理解
- 第8.3.4中原型式的继承不是很懂作用
3. 第8.3.6中寄生组合继承,重新梳理一下继承中的逻辑
4. 第8.4.4.5中类混入提到利用辅助函数进行展开嵌套,不是很懂原理和作用。
第九章代理与反射
- 第9.1.6.2中提到使用反射不在抛错而是返回false,与实际代码不一样。
第十章函数
- 第10.14闭包的作用和定义依旧不是很懂
- 第10.14.1中this对象的作用域不清楚
- 第10.14.2中
- 第10.15,10.16都不是很懂了
期约和异步函数
- 第11.2.4.4中对于reduce的使用不是很懂
- 第11.2.5.1中期约的取消,实现这块函数不是很懂
第十四
- 第14.3.3 微任务队列及为啥处理两次
第二十章
- 第20.9.2,3,4看不懂可读流,可写流和转换流
第二十四章
- 第24.6中fetch API的数据绑定不是很懂,尤其stream那块
此文章版權歸Merlynr所有,如有轉載,請註明來自原作者
评论