书pan.baidu.com/s/14cPqfkAgg3VLKETfDcoVew?pwd=953k
一些关键技术:
一、类型和语法
- JavaScript的内置类型JavaScript有七种内置类型,分别是:null、undefined、boolean、number、string、object和symbol(ES6中新增)。除object之外,其他类型统称为“基本类型”。可以使用typeof运算符来查看值的类型,但需要注意的是,typeof对null的处理存在特殊情况,即typeof null返回的是”object”,这是一个历史遗留问题。
- 值和类型的关系在JavaScript中,变量没有类型,但它们所持有的值有类型。类型定义了值的行为特征。例如,数字类型包括整数和浮点型,还有特殊的值如NaN、+Infinity、-Infinity和-0等。字符串和数组虽然类似,但行为特征不同,特别是在将字符作为数组元素来处理时需要特别小心。
- 原生函数和封装对象JavaScript为基本数据类型值提供了封装对象,称为原生函数,如String、Number、Boolean等。这些原生函数为基本数据类型值提供了该子类型所特有的方法和属性。例如,可以使用String对象的trim()方法来去除字符串两端的空白字符。
- 强制类型转换强制类型转换是JavaScript中的一个重要概念,包括显式强制类型转换和隐式强制类型转换。显式强制类型转换明确告诉我们哪里发生了类型转换,有助于提高代码的可读性和可维护性。而隐式强制类型转换则没有那么明显,是其他操作的副作用,但也有助于提高代码的可读性(尽管有时可能会引发错误)。在处理强制类型转换时,需要特别小心,尤其是隐式强制类型转换。
二、异步与性能
- 事件循环JavaScript程序总是至少分为两个块:第一块现在运行;下一块将来运行,以响应某个事件。事件循环是JavaScript引擎的代码解析纠错机制,它会在需要的地方自动插入分号来纠正解析错误,并确保程序能够按预期运行。一旦有事件需要运行,事件循环就会运行,直到队列清空。
- 回调函数回调函数是JavaScript异步的基本单元。但是,随着JavaScript的发展,回调已经不够用了。因为大脑对于事情的计划方式是线性的、阻塞的、单线程的语义,而回调表达异步流程的方式是非线性的、非顺序的,这使得正确推导这样的代码难度很大。因此,需要一种更同步、更顺序、更阻塞的的方式来表达异步,如Promise和生成器等。
- PromisePromise是处理异步操作的一种更优雅的方式。它代表了一个未来可能会完成(或失败)的异步操作的结果。通过Promise,可以将异步操作的成功值或失败原因传递给后续操作,从而避免回调地狱的问题。Promise还提供了链式调用的能力,使得异步操作更加易于管理和维护。
- 生成器生成器是一种特殊的函数,它可以在执行过程中暂停和恢复。通过生成器,可以创建一个迭代器对象,该对象允许你逐个访问生成器函数产生的值。生成器在异步编程中非常有用,因为它们允许你以同步的方式编写异步代码,从而更容易理解和维护。