JavaScript
2021-11-25 11:28:48 26 举报
JavaScript是一种高级的、解释型的编程语言,主要用于网页和网络应用程序的开发。它是Web的三大核心技术之一,与HTML和CSS共同构建了互联网的基础。JavaScript具有动态类型、弱类型、基于原型的特性,以及支持面向对象、命令式和声明式(如函数式编程)风格编程的能力。它最初由Netscape公司的Brendan Eich在1995年开发,后被Mozilla基金会接管并开源,成为世界上最流行的编程语言之一。JavaScript可以运行在几乎所有的主要平台和浏览器上,包括Windows、macOS、Linux、Android和iOS等。
作者其他创作
大纲/内容
this指向
全局上下文
直接调用函数(默认绑定)
对象.方法的形式调用(隐式绑定)
使用call,apply,bind绑定this(显示绑定)
DOM事件绑定
new+构造函数(new绑定)
箭头函数
优先级
JS闭包到底是什么
闭包是什么
为什么js会有闭包
闭包的怎么形成的(形成机制)
闭包与内存管理
闭包的三个特性
闭包的表现形式及应用
闭包的优缺点
在循环中创建闭包
JS面向对象
原型和原型链
理解原型,构造函数,实例之间的关系
原型链
创建对象的方式
工厂模式
构造函数模式
原型模式
组合使用构造函数模式和原型模式
动态原型模式
寄生构造函数模式
稳妥构造函数模式
实现继承的方式
原型链
借用构造函数
组合继承
原型试继承
寄生试继承
寄生组合式继承
Babel 如何编译 ES6 Class 的
从设计思想上谈谈继承
继承存在的问题
如何解决继承的问题
JS模块化规范
模块化要解决什么问题以及怎么实现模块化
什么是模块化
模块化有什么好处
传统的模块化开发方式
模块化的发展历程
CommonJS
NodeJS
Module Loader
RequireJS in AMD
SeaJS in CMD
Es6 Module
ES6 Module in Browser
ES6 Module in Node.js
Dynamic import
Module Bundler
Browserify
Webpack
ES6 Module 与 CommmonJS 的区别
加载方式
同步/异步
输出值的方式
循环加载的处理方式
模块化之间的差异
模块化的现状
EventLoop
消息队列和事件循环-浏览器页面主线程是如何运作的
使用单线程处理安排好的任务
在线程运行过程中处理新任务
处理其他线程发送过来的任务
处理其他进程发送过来的任务
消息队列中的任务类型
如何安全退出
页面使用单线程的缺点
宏任务和微任务:如何处理高优先级的任务。
异步:如何解决单个任务执行时长过久的问题。
宏任务和微任务
宏任务
微任务
异步回调
微任务是什么
微任务产生时机
微任务执行时机
监听DOM变化方法演变
轮询检测
Mutation Event
MutationObserver
再谈EventLoop
JS异步解决方案
异步要解决什么问题以及异步的解决方案
什么是异步
js为什么会有异步
异步的实现原理
常用的异步操作
异步的解决方案有哪些
回调函数
异步编程的问题:代码逻辑不连续
封装异步代码,让处理流程变得线性
新的问题:回调地狱
嵌套调用
任务的不确定性 成功和失败两种结果
Promise
Promise怎么解决回调地狱
回调函数的延时绑定
回调函数返回值穿透
错误“冒泡”技术
Promise为什么引入微任务
Promise 如何实现链式调用
Promise.prototype.then,catch,finally
实现Promise的resolve、reject,Promise.prototype.finally
实现Promise的all和race
Generator
什么是生成器
生成器的执行流程
生成器的实现机制-协程
什么是协程
协程的执行流程
Generator的异步应用
thunk函数
Generator+Thunk版异步
Generator+Promise版异步
co库
async+await
async
Await
forEach 中用 await 会产生什么问题?怎么解决这个问题?
问题
问题原因
解决方案
解决原理-Iterator
重新认识生成器
手写系列
手写Promise
Promise.prototype.then,catch,finally
promise.resolve,reject
promise.all,race
this绑定
call
apply
bind
寄生组合继承
如何模拟实现new的效果
instanceof
数组
函数的arguments为什么不是数组?如何转化成数组?
数组扁平化
数组去重
数组排序
对象拷贝
浅拷贝的实现方式
深拷贝的实现方式
事件防抖节流
防抖
加强版防抖
节流
ajax
柯里化
promise并行限制
分片思想解决大数据量渲染问题
列表转树状结构
树状结构装列表
js数据类型
js是什么类型的语言
js有哪些数据类型
基本包装类型
浮点数
js数据类型的检测
typeof
instanceof
constructor
Object.prototype.toString.call()
js数据类型的转换
转换为字符串
转换为数字
转换为布尔值
隐试强制类型转布尔值
宽松相等和严格相等
||和&&
JS执行上下文
执行上下文包含内容
执行上下文的类型
执行上下文栈
执行上下文周期
变量对象
作用域链
作用域
作用域类型
作用域规则
词法作用域
作用域链本质
作用域链的用途
标识符解析
0 条评论
下一页