始于 2021 年 01 月 18 号
-
JavaScript 编程语言 (02.02 读完第一部分~)
-
简介
- JavaScript 简介 (01.18)
- 手册与规范 (01.18)
- 代码编辑器 (01.18)
- 开发者控制台 (01.18)
-
JavaScript 基础知识
- Hello, world! (01.18)
- 代码结构 (01.18)
- 现代模式,”use strict” (01.18)
- 变量 (01.18)
- 数据类型 (01.19)
- 交互:alert、prompt 和 confirm (01.19)
- 类型转换 (01.19)
- 基础运算符,数学 (01.19)
- 值的比较 (01.19)
- 条件分支:if 和 ‘?’ (01.19)
- 逻辑运算符 (01.20)
- 空值合并运算符 ‘??’ (01.20)
- 循环:while 和 for (01.20)
- “switch” 语句 (01.20)
- 函数 (01.20)
- 函数表达式 (01.20)
- 箭头函数,基础知识 (01.20)
- JavaScript 特性 (01.20)
-
代码质量
- 在 Chrome 中调试 (01.20)
- 代码风格 (01.20)
- 注释 (01.20)
- 忍者代码 (01.20)
- 使用 Mocha 进行自动化测试 (01.21)
- Polyfill (01.21)
-
Object(对象):基础知识
- 对象 (01.21)
- 对象引用和复制 (01.21)
- 垃圾回收 (01.21)
- 对象方法,”this” (01.21)
- 构造器和操作符 “new” (01.21)
- 可选链 “?.” (01.21)
- Symbol 类型 (01.21)
- 对象 — 原始值转换 (01.21)
-
数据类型
- 原始类型的方法 (01.21)
- 数字类型 (01.21)
- 字符串 (01.21)
- 数组 (01.21)
- 数组方法 (01.21)
- Iterable object(可迭代对象) (01.25)
- Map and Set(映射和集合) (01.25)
- WeakMap and WeakSet(弱映射和弱集合) (01.25)
- Object.keys,values,entries (01.26)
- 解构赋值 (01.26)
- 日期和时间 (01.26)
- JSON 方法,toJSON (01.26)
-
函数进阶内容
- 递归和堆栈 (01.27)
- Rest 参数与 Spread 语法 (01.27)
- 变量作用域,闭包 (01.27)
- 旧时的 “var” (01.27)
- 全局对象 (01.27)
- 函数对象,NFE (01.27)
- “new Function” 语法 (01.27)
- 调度:setTimeout 和 setInterval (01.28)
- 装饰器模式和转发,call/apply (01.28)
- 函数绑定 (01.28)
- 深入理解箭头函数 (01.28)
-
对象属性配置
- 属性标志和属性描述符 (01.29)
- 属性的 getter 和 setter (01.29)
-
原型,继承
- 原型继承 (01.30)
- F.prototype (01.30)
- 原生的原型 (01.30)
- 原型方法,没有 proto 的对象 (01.30)
-
类
- Class 基本语法 (01.30)
- 类继承 (01.30)
- 静态属性和静态方法 (01.30)
- 私有的和受保护的属性和方法 (01.30)
- 扩展内建类 (01.30)
- 类检查:”instanceof” (01.30)
- Mixin 模式 (01.30)
-
错误处理
- 错误处理,”try..catch” (01.30)
- 自定义 Error,扩展 Error (01.30)
-
Promise,async/await
- 简介:回调 (02.01)
- Promise (02.01)
- Promise 链 (02.01)
- 使用 promise 进行错误处理 (02.01)
- Promise API (02.01)
- Promisification (02.01)
- 微任务(Microtask) (02.01)
- Async/await (02.01)
-
Generator,高级 iteration
- Generator (跳过)
- 异步迭代和 generator (跳过)
-
模块
- 模块 (Module) 简介 (02.02)
- 导出和导入 (02.02)
- 动态导入 (02.02)
-
杂项
- Proxy 和 Reflect (02.02)
- Eval:执行代码字符串 (02.02)
- 柯里化(Currying) (02.02)
- Reference Type (02.02)
- BigInt (02.02)
-
-
浏览器:文档,事件,接口 (02.09 读完第二部分~)
-
Document
- 浏览器环境,规格 (02.02)
- DOM 树 (02.02)
- 遍历 DOM (02.02)
- 搜索:getElement,querySelector (02.02)
- 节点属性:type,tag 和 content (02.02)
- 特性和属性(Attributes and properties) (02.02)
- 修改文档(document) (02.02)
- 样式和类 (02.04)
- 元素大小和滚动 (02.04)
- Window 大小和滚动 (02.04)
- 坐标 (02.04)
-
事件简介
- 浏览器事件简介 (02.05)
- 冒泡和捕获 (02.05)
- 事件委托 (02.05)
- 浏览器默认行为 (02.05)
- 创建自定义事件 (02.05)
-
UI 事件
- 鼠标事件 (02.08)
- 移动鼠标:mouseover/out,mouseenter/leave (02.08)
- 鼠标拖放事件 (02.08)
- 指针事件 (02.08)
- 键盘:keydown 和 keyup (02.08)
- 滚动 (02.08)
-
表单,控件
- 表单属性和方法 (02.08)
- 聚焦:focus/blur (02.08)
- 事件:change,input,cut,copy,paste (02.08)
- 表单:事件和方法提交 (02.08)
-
加载文档和其他资源
- 页面生命周期:DOMContentLoaded,load,beforeunload,unload (02.09)
- 脚本:async,defer (02.09)
- 资源加载:onload,onerror (02.09)
-
杂项
- DOM 变动观察器(Mutation observer) (02.09)
- 选择(Selection)和范围(Range) (02.09)
- 事件循环:微任务和宏任务 (02.09)
-
-
其他文章
-
Frame 和 window
- 弹窗和 window 的方法
- 跨窗口通信
- 点击劫持攻击
-