我的前端笔记 之 JavaScript

158 阅读1分钟


看大神文章的总结


  • “一切都是对象” 
  • 对象都是通过函数来创建的。
  •  函数也是一种对象。
  • 每个函数都有一个属性 -> prototype
  • 每个对象都有一个隐藏的属性 - > __proto__ 
  • 对象的__proto__ === function.prototype 
  • typeof 检测值类型
  • instanceof 判断引用类型 (区分属性是基本的还是原型中 -> hasOwnproperty ,特别在for .. in ... 过滤掉原型中的属性)
  • 所有对象的原型链都会找到Object.prototype 这就是“继承”
  • 每个函数都有call 、 apply 方法,有length、arguments、caller (函数由Function函数创建,继承Function.prototype中的方法)
  • 执行上下文环境 -> 执行之前,将要用的先拿出来,有的赋值、有的underfied
  • *** 在函数中this 到底取何值, 是在函数真正被调用执行时确定
  • / 函数作为对象的一个属性      
  • 如函数作为对象的一个属性,并且作为对象属性被调用时,this指向该对象 
  • 全局和调用普通函数,其中this也都是window 
  • javascript 没有块级作用域, 只有函数可以创建作用域
  • // ** 作用域 在函数定义时就已经确定了,而不是在函数调用时确定
  • 如果要查找一个作用域下某个变量的值,就需找到这个作用域对应执行上下文环境
  • 静态作用域 = > 要到创建这个函数的那个作用域取值,“创建” 不是“调用”
  • 闭包应用的两种情况:     
  •  1.函数作为返回值   2. 函数作为参数传递