# 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

# 常见问题

  1. 值传递和引用传递的区别

  2. 闭包的概念和应用

  3. 数据类型有哪些

  4. 判断数组的方法

  5. this

  6. 原型和原型链

  7. Promise

  8. 数组扁平化

  9. 创建对象和继承的方法, ES5和ES6中的区别

  10. 浅拷贝和深拷贝

  11. 函数的防抖和截流

  12. 如何判断对象的实例

  13. 优化有哪些方案

  14. 事件循环机制

  15. new 操作符

  16. 创建一个新的对象

  17. this 指向这个对象

  18. 执行函数

  19. 返回 this

  20. 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
  1. 数组和对象的遍历方法