JS标准库

118 阅读1分钟

加不加new的区别

数组

  • 数组就是原型链中有 Array.prototype 的对象
  • 伪数组
    • 有 0,1,2,3,4,5...n,length 这些 key 的对象
    • 原型链中没有 Array.prototype
    • 目前知道的伪数组有
        1. arguments 对象
        1. document.querySelectAll('div') 返回的对象

函数

  1. 函数的声明
  • console.log
  • 自动生成return undefined
  • 作用域问题
  • 箭头函数
  • 五种
  • name属性
  • 如果new 函数名是anonymous
  1. 调用函数
  • eval()给一段字符串,当代码执行
  • call()在Function.prototype中
  • f.call(undefined,1,2)是真正的调用
  1. this和arguments
  • call的第一个参数可以用this得到
  • call的后面参数可以用arguments得到
  • arguments是伪数组,__proto__不是Array.prototype
  1. call Stack调用栈
  2. 递归
  • 用call stack理解
  1. 作用域
  • 做题先作用域图和注意变量提升
  1. 闭包
  • 函数使用了其范围以外的变量,这个函数和这个变量就是闭包