# JavaScript基础
JavaScript 包括三个部分: EcmaScript(ES5, ES6), BOM, DOM.
# 语法
- 区分大小写
- 标识符
# 操作符
- typeof
- instanceof
- delete
- in
- debugger
- new
- super
- this
- void
- yield
# 语句
- if
- do-wile
- while
- for
- for-in
- label
- break 和 continue
- with
- switch
# 作用域
# 内置对象
- Date
- Date.now
- Math
- Math.PI
- Math.abs
- Math.pow
- Math.floor = Math.max
- Math.min
- Math.random
- Math.round
- Number
- String
- Symbol
- Array
- Array.prototype.map
- Object
- Function
- Set
- Map
- Generator
- Error
- ArrayBuffer
- JSON
- Promise
- Proxy
- RegExp
# 常用方法
- isNaN
- parseFloat
- parseInt
- isFinite
- eval
- decodeURI
- encodeURI
# 常见问题
值传递和引用传递的区别
闭包的概念和应用
数据类型有哪些
判断数组的方法
this
原型和原型链
Promise
数组扁平化
创建对象和继承的方法, ES5和ES6中的区别
浅拷贝和深拷贝
函数的防抖和截流
如何判断对象的实例
优化有哪些方案
事件循环机制
new 操作符
创建一个新的对象
this 指向这个对象
执行函数
返回 this
ES6 有哪些新特性
- let/const
- 解构赋值
- 箭头函数, 参数的默认值, rest 参数
- 数组的扩展运算符, 新的数组方法 Array.from, Array.of, copyWithin, find, findIndex, fill, entries, keys, values, includes, flat, flatMap
- 对象字面量简写, 对象的新增方法
- Symbol
- Promise
- Iterator, for...of
- Class
- 模块化
- Decorator
- 数组和对象的遍历方法