数据类型和运算符
有哪些数据类型
原始类型
数据处理
null&undefined
typeof null为"Object“
引⽤类型
判断数据类型
⼀、常⻅判断:typeof
⼆、 已知对象判断:instanceof
三、根据对象的构造器:constructor
四 、对象原型链判断:Object.prototype.toString.call(这个是判断类型最准的⽅法)
类型转换
类型
对象转换为基本类型
显式强制类型转换
隐式强制类型转换
== and ===
parseInt&parseFloat
浮点数求和步骤(没看懂)
- 对阶
- 求和
- 规格化
⼗进制⼩数转⼆进制
0.1+0.2 为什么不等于 0.3
简单了解 null 和 undefined
undefined 和 undeclared 的区别
JavaScript NaN 属性
isNaN&number.isNaN()
isFinite()&isNaN()
逻辑与 && 和 逻辑或 ||
数组
数组⽅法
创建数组
Array.from() 浅拷⻉
Array.of()
sort原理
copyWithin()
find()
findIndex()
fill()
对原数组有影响
push
unshift()
splice
pop()
shift()
对原数组⽆影响
concat()
slice()
reduce
filter
some
every
求最⼤值
join
flat(),flatMap()
数组去重
indexof、includes、filter
Set
Map
数组和链表
数组拍平
ES6新增的数组⽅法
find找到符合条件的成员
findIndex找到符合条件元素的下标
flat拍平数组
flatMap()
Array.at()返回对应下标的值
Array.from()将类似数组的对象转为真的数组
Array.of()将 ⼀组数值 转为 数组
Array.includes() 判断数组是否包含某个值,返回boolean类型
… 扩展运算符
copyWithin()
fill()填充数组
entries()遍历键值对
keys()遍历键名
values()遍历键值
Array.proptype.sort()的排序稳定性
判断是否存在某个值
arguments为啥不是数组
Array.prototype.slice.call()
Array.from
ES6扩展运算符
concat+apply or apply
对象
遍历对象属性
访问属性点表示和[]
for…in
Object.keys(obj)
Object.getOwnPropertyNames(obj)
Object.getOwnPropertySymbols(obj)
Reflect.ownKeys(obj)
遍历对象的⽅法
for in
object.key
继承⽅式
原型链
借⽤构造函数(经典继承)
组合继承
原型式继承
寄⽣式继承
instanceof
typeof&instanceof&Object.prototype.toString.call
深浅拷⻉
freeze属性
函数
函数基本知识
函数声明
使⽤function的函数声明⽐函数表达式优先提升
函数表达式
DOM和事件
事件流
什么是事件流
事件模型
原始事件模型
标准事件模型
IE事件模型
哪些事件⽀持冒泡
阻⽌冒泡
事件代理
事件委托
HTMLCollection、NodeList
NodeList
HTMLCollection
Element、Node
内存管理GC
垃圾回收算法
引⽤计数
标记清除
复制算法
标记整理
识别内存泄露
V8对GC优化
Javascript 简介:回调
Javascript Promise
Javascript Promise 链
Javascript 使用 promise 进行错误处理
Javascript Promise API