javascript 概览
# javascript 概览
# JS 高级知识点
高阶函数(柯里化、偏应用、组合和管道) https://www.cnblogs.com/chenwenhao/p/11708105.html (opens new window)
内存泄漏,内存溢出
闭包
函数声明、函数表达式、匿名函数
IIFE (立即调用的函数表达式)
事件循环(宏任务,微任务),事件委托(delegate),事件冒泡,事件捕获,事件流
Web Worker
原型及原型链,原型继承
作用域,作用域链,执行上下文,this,apply,call,bind
new 原理 https://segmentfault.com/a/1190000021813437 (opens new window)
JS 自定义事件及执行
JS 解析过程
JS 运行机制
JS 垃圾回收
JS 动画 requestAnimationFrame
JS 设计原则,设计模式 https://www.cnblogs.com/imwtr/p/9451129.html (opens new window)
JS 节流,防抖,深拷贝,排序
# js 概念
堆里存放着一些对象。而栈中则存放着一些基础类型变量以及对象的指针
js 内存模型 调用栈(Call Stack):用于主线程任务的执行。
堆(Heap):用于存放非结构数据,如程序分配的变量和对象。
任务队列(Queue): 用于存放异步任务。任务:
宏任务(macro)task 主要包含:
script( 整体代码)、
setTimeout、
setInterval、
I/O、UI 交互事件、
setImmediate(Node.js 环境)微任务 microtask 主要包含:
Promise 的 then 或 catch,
Object.observer,
MutationObserver.
process.nextTick(Node.js 环境)事件驱动,就是将一切抽象为事件
消息队列: 消息队列是一个先进先出的队列,里面放着各种各样的消息;
事件循环: 事件循环是指主线程重复从消息队列中取消息,执行的过程。
事件流分为三个阶段,捕获阶段、目标阶段、冒泡阶段。
for 循环中使用 return 会报错,forEach 中使用 return 不会报错,但 rerutn 并不会生效
哪个对象调用函数,函数里面的 this 指向哪个对象
Event Loop(事件循环)是 JavaScript 的执行机制。
JavaScript 是一门单线程语言。
事件委托 是通过事件冒泡的原理,利用父级去触发子级的事件。
函数的柯里化,柯里化是把一个多参数函数转换为一个嵌套的一元函数的过程。
是 Javascript 中函数式编程的一个重要概念。它返回的,是一个函数的函数。 其实现方式,需要依赖参数以及递归,通过拆分参数的方式,来调用一个多参数的函数方法,以达到减少代码冗余,增加可读性的目的。
高阶函数是一个接收函数作为参数或者将函数作为返回输出的函数
函数提升优先级比变量提升要高,且不会被变量声明覆盖,但是会被变量赋值覆盖。