javascript知识点

JavaScript类型

  • 基本类型有六种: null,undefined,boolean,number,string,symbol

let、const、var的区别

  • let 和 const 不允许重复声明,var是可以重复声明的
  • let 和 const 没有变量提升,必须先声明后使用;var 存在变量提升,可以先使用后声明
  • let 和 const 有块级作用域,var没有

对原型的理解

  • 原型包含prototype 和 __ proto__,原型可以节省内存空间、实现数据共享、实现继承
  • 在执行函数定义的时候,显示原型prototype就会被创建,在实例化对象的时候,隐式原型 __ proto__就会被创建
  • 因为函数本身也是对象,所以函数除了显示原型prototype外,也拥有隐式原型__ proto__

对执行上下文的理解

  • 当代码要执行,但是没有执行,或者将要执行,在预解析之后,
    此时出现了全局执行上下文环境(全局执行上下文),
    创建了一个变量对象,用来收集var , function ,函数参数,确定this的指向,
    默认全局执行上下文是确定了this是window,
    这个变量对象会被压入到栈中(全局执行上下文的变量对象在栈中的最下面),
    如果出现了函数调用,此时出现了局部执行上下文环境(局部执行上下文),
    再次创建一个变量对象,用来收集函数参数,var ,function,改变this的指向,
    这个变量对象会被再次压入栈中,在全局执行上下文的变量对象的上面,
    如果当前函数调用完毕,此时出栈(把局部上下文的变量对象干掉),依次弹出变量对象,就结束了