# javascript高阶语法 **Repository Path**: javafdx/javascript-high-level-syntax ## Basic Information - **Project Name**: javascript高阶语法 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-12-16 - **Last Updated**: 2022-03-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: JavaScript ## README ``` javascript-high-level-syntax ├─ 01闭包 │ ├─ 01高阶函数.js │ ├─ 02函数可作为参数.js │ ├─ 03数组中得到函数使用.js │ └─ 04闭包到底是什么.js ├─ 02this的指向 │ ├─ 02_this在全局作用域.js │ ├─ 03_同一个函数this的不同.js │ ├─ 06_apply-call-bing.js │ ├─ 07_显式绑定.js │ ├─ 08_new绑定.js │ ├─ 09_优先级.js │ ├─ 10_箭头函数.js │ └─ index.html ├─ 08_call-apply-bind函数的实现 │ └─ 01_call函数的实现.js ├─ 09_纯函数-柯里化 │ ├─ 01_纯函数和函数副作用对比.js │ ├─ 02_柯里化.js │ └─ 03_通用的组合函数的实现.js ├─ 10_with-eval-strict │ ├─ 01_with语句.js │ ├─ 02_eval函数.js │ ├─ 03_开启严格模式.js │ └─ index.html ├─ 11_js面向对象 │ ├─ 02_对象属性的操作.js │ ├─ 06_定义多个属性描述符.js │ ├─ 07_获取属性描述符.js │ └─ 08_Object的方法对对象的限制.js ├─ 12_创建对象方案 │ ├─ 01_创建对象方案-字面量.js │ ├─ 02_创建对象方案-工厂模式.js │ ├─ 03_认识构造函数.js │ ├─ 04_创建对象方式-构造函数.js │ ├─ 05_对象的原型理解.js │ ├─ 06_函数的原型理解.js │ ├─ 09_函数原型上的属性.js │ ├─ 10_创建对象方案-原型构造函数.js │ └─ index.html ├─ 13_JS原型链和集成 │ ├─ 03_Object的原型理解.js │ ├─ 04_顶层原型来自哪里.js │ ├─ 05_为什么需要有继承.js │ ├─ 07_继承-原型链的继承方案.js │ ├─ 10_继承-原型式继承-对象.js │ ├─ 11_继承-寄生式继承-对象.js │ └─ 12_继承-寄生式继承-对象.js ├─ 14_js原型的补充 │ ├─ 01_判断方法的补充.js │ ├─ 02_instanceof的判断.js │ └─ 04_对象-函数-原型之间的关系.js ├─ 15_ES6中类的使用 │ ├─ 01_class定义类的方式.js │ ├─ 02_class类的构造方法.js │ ├─ 03_class中的方法定义.js │ ├─ 04_class中实现继承extends.js │ ├─ 07_创建类继承自内置.js │ ├─ 08_Js中实现混入的效果.js │ ├─ 09_传统面向对象多态.ts │ └─ 10_js面向对象多态.js ├─ 16_ES6知识点讲解 │ ├─ 01_字面量增强的写法.js │ ├─ 02_结构-数组的结构.js │ ├─ 03_对象的解构.js │ ├─ 04_let-const的基本使用.js │ ├─ 07_块级作用域.js │ ├─ 11_块级作用域的补充.js │ └─ index.html ├─ 17_ES6的其他知识点 │ ├─ 01_,模板字符串的基本使用.js │ ├─ 03_ES函数的默认参数.js │ ├─ 04_ES中函数的剩余参数.js │ ├─ 05_ES中箭头函数的补充.js │ ├─ 07_展开语法进行的浅拷贝.js │ ├─ 08_表示数值的方式.js │ ├─ 09_Symbol的基本使用方式.js │ ├─ 10_数据解构Set.js │ ├─ 11_数据结构WeakSet.js │ ├─ 12_数据结果Map.js │ └─ 13_数据结构WeakMap.js ├─ 18_ES7知识点解析 │ ├─ 01_array-includes方法.js │ └─ 02_指数的运算方法.js ├─ 19_ES8知识点解析 │ ├─ 01_Object的values获取.js │ ├─ 02_Object的entries获取.js │ └─ 03_padStart和padEnd使用.js ├─ 20_ES10知识点解析 │ ├─ 01_多维数组.js │ ├─ 02_Object的entries.js │ └─ 03_去除空格trim.js ├─ 21_ES11知识点 │ ├─ 01_大数字Bigint的使用.js │ ├─ 02_空值合并操作.js │ ├─ 03_可选链.js │ ├─ 04_获取全局对象global.js │ ├─ 05_for-in操作的标准化.js │ └─ index.html ├─ 22_ES12知识点 │ ├─ 01_注册对象并销毁.js │ ├─ 02_WeakRef.js │ └─ 03_逻辑运算.js ├─ 23_Proxy监听对象 │ ├─ 01_监听对象的方式.js │ ├─ 02_监听对象的操作二Proxy.js │ ├─ 03_Proxy对函数对象的监听.js │ ├─ 05_Reflect和Proxy一起使用.js │ ├─ 06_receiver参数的作用.js │ └─ 07_Reflect中construct.js ├─ 24_响应式原理实现 │ ├─ 01_认识什么是响应式.js │ ├─ 02_响应式函数的封装.js │ ├─ 03_依赖收集的封装.js │ ├─ 04_自动监听对象变化.js │ ├─ 05_依赖收集的管理.js │ ├─ 06_正确的收集依赖.js │ ├─ 07_对Depend类的重构.js │ ├─ 08_对象的响应式操作vue3.js │ └─ 09_对象的响应式操作vue2.js ├─ 25_Promise的使用 │ ├─ 01_异步请求的处理方式.js │ ├─ 02_Promise的基本使用.js │ ├─ 03_异步请求的Promise.js │ ├─ 04_Promise的三种状态.js │ ├─ 05_Promise的resolve参数.js │ ├─ 06_Promise对象方法-then.js │ ├─ 07_Promise对象方法-catch.js │ ├─ 08_Promise对象方法-finally.js │ ├─ 09_Promise类方法-resolve.js │ ├─ 10_Promise类方法-reject.js │ ├─ 11_Promise类方法-all.js │ ├─ 12_Promise类方法-allSettled.js │ ├─ 13_Promise类方法-race.js │ ├─ 14_Promise类方法-any.js │ ├─ 15_Promise结构的设计.js │ ├─ 16_Promise-then方法的设计.js │ ├─ 17_Promise-then方法优化.js │ ├─ 18_Promise-then方法优化二.js │ ├─ 19_Promise方法-优化三.js │ └─ 20_Promise-finally方法.js ├─ 26_迭代器-生成器 │ ├─ 01_认识什么是迭代器.js │ ├─ 02_生成迭代器的函数.js │ ├─ 03_认识什么是可迭代对象.js │ ├─ 04_内置创建可迭代对象.js │ ├─ 05_可迭代对象的应用场景.js │ ├─ 06_自定义类的可迭代对象.js │ ├─ 07_普通函数的执行流程.js │ ├─ 08_什么是生成器函数.js │ ├─ 10_生成器的其他方法使用.js │ ├─ 11_生成器的return终止执行.js │ ├─ 12_生成器的throw抛出异常.js │ ├─ 13_生成器替代迭代器使用.js │ └─ 14_异步代码的处理方案.js ├─ 27_async-await │ ├─ 01_async异步函数的使用.js │ ├─ 02_异步函数的执行流程.js │ ├─ 03_和普通函数的区别一-返回值.js │ ├─ 04_和普通函数的区别二-异常.js │ └─ 05_async中使用await关键字.js ├─ 28_事件循环-队列 │ ├─ 01_认识事件循环.js │ ├─ 02_宏任务和微任务.js │ ├─ 03_事件循环面试一.js │ ├─ 04_事件循环面试题二.js │ └─ 05_事件循环面试题三.js ├─ 29_错误处理方案 │ ├─ 01_函数出现错误处理.js │ ├─ 02_抛出异常的其他补充.js │ └─ 03_对抛出的异常进行处理.js ├─ 30_JS模块化解析 │ ├─ 01_没有模块化 │ │ ├─ index.html │ │ ├─ kobe │ │ │ └─ index.js │ │ └─ why │ │ ├─ index.js │ │ └─ why.js │ ├─ 02_CommonJS │ │ ├─ 01_基本使用 │ │ │ ├─ main.js │ │ │ └─ why.js │ │ ├─ 02_内部原理 │ │ │ ├─ main.js │ │ │ └─ why.js │ │ ├─ 03_exports │ │ │ ├─ main.js │ │ │ └─ why.js │ │ ├─ 04_require细节 │ │ │ ├─ abc │ │ │ │ └─ index.js │ │ │ ├─ foo.js │ │ │ └─ main.js │ │ └─ 05_模块加载细节 │ │ ├─ foo.js │ │ ├─ main.js │ │ └─ 循环引用.drawio │ ├─ 03_AMD规范 │ │ ├─ index.html │ │ ├─ lib │ │ │ └─ require.js │ │ └─ src │ │ ├─ bar.js │ │ ├─ foo.js │ │ └─ main.js │ ├─ 03_CMD规范 │ ├─ 05_ESModule │ │ ├─ 01_基本使用 │ │ │ ├─ foo.js │ │ │ ├─ index.html │ │ │ └─ main.js │ │ ├─ 02_其他用法 │ │ │ ├─ foo.js │ │ │ ├─ index.html │ │ │ └─ main.js │ │ ├─ 03_结合使用 │ │ │ ├─ index.html │ │ │ ├─ main.js │ │ │ └─ utils │ │ │ ├─ format.js │ │ │ ├─ index.js │ │ │ └─ math.js │ │ ├─ 04_Default │ │ │ ├─ foo.js │ │ │ ├─ index.html │ │ │ └─ main.js │ │ ├─ 05_import函数 │ │ │ ├─ foo.js │ │ │ ├─ index.html │ │ │ └─ main.js │ │ └─ 06_内部原理 │ │ ├─ foo.js │ │ ├─ index.html │ │ └─ main.js │ └─ 06_esmodule_commonjs │ ├─ package.json │ └─ src │ ├─ bar.js │ ├─ foo.js │ └─ index.js ├─ 31_包管理工具 │ ├─ 01_包管理工具 │ │ ├─ scriptjs │ │ │ └─ why.js │ │ └─ src │ │ └─ main.js │ ├─ 02_npm-install原理 │ ├─ 03_yarn管理工具 │ ├─ 04_npx管理工具 │ ├─ 05_发布自己的包 │ └─ 06_使用自己的包 ├─ 32_JSON和数据存储 │ ├─ 01_JSON表示方式一.json │ ├─ 02_JSON表示方式二.json │ ├─ 03_JSON表示方式三.json │ ├─ 04_JSON的序列化需要.js │ ├─ 05_序列化方法stringfy细节.js │ ├─ 06_JSON字符串解析parse细节.js │ └─ 07_利用JSON的序列化深拷贝.js ├─ 33_浏览器存储方案 │ ├─ 01_Storage的存储演练.js │ ├─ 02_Storage常见的属性和方法.js │ ├─ 03_Storage的工具类的封装.js │ ├─ 04_indexedDB数据库的使用.js │ ├─ detail.html │ └─ index.html ├─ 34_Cookie-BOM-DOM │ ├─ 01_cookie的基本使用.js │ ├─ 02_window作为全局对象.js │ ├─ 03_window的常见属性-方法-事件.js │ ├─ 04_window继承自EventTarget.js │ ├─ 05_location常见的属性-方法.js │ └─ 06_history常见属性-方法.js ├─ 36_防抖节流深拷贝 │ ├─ 01_debounce基本实现.js │ ├─ 02_debounce-this基本使用.js │ ├─ 03_debounce-立即执行.js │ ├─ 04_debounce-取消功能.js │ ├─ 05_debounce-函数返回值.js │ ├─ 06_throttle-基本实现.js │ ├─ 07_throttle-leading实现.js │ ├─ 08_throttle-trailing.js │ ├─ 09_throttle-this参数.js │ ├─ 10_throttle取消功能.js │ ├─ debounce.html │ └─ throttle.html ├─ 37_深拷贝-事件总线 │ ├─ 01_简单的深拷贝方法.js │ ├─ 02_实现深拷贝函数-基本实现.js │ ├─ 03_实现深拷贝函数-其他类型.js │ └─ 04_实现深拷贝函数-循环引用.js ├─ 流程图.drawio └─ 笔记.md ```