typeof、摇树优化、js预编译

typeof:

   typeof用以获取一个变量或者表达式的类型,一元运算符

  • null:空、无。表示不存在,当为对象的属性赋值为null,表示删除该属性
  • undefined:未定义。当声明变量却没有赋值时会显示该值。可以为变量赋值为undefined
  • number:数值。最原始的数据类型,表达式计算的载体
  • string:字符串。最抽象的数据类型,信息传播的载体
  • boolean:布尔值。最机械的数据类型,逻辑运算的载体
  • object:对象。面向对象的基础

  注意:没有数组,因为type数组时结果是object

  

js预编译:

  脚本执行js引擎执行步骤:

  1. 语法分析
  2. 预编译
  3. 解释执行

  语法分析:引擎检查你的代码有没有什么低级的语法错误 

  预编译:在内存中开辟一些空间,存放一些变量与函数 
  解释执行:顾名思义便是执行代码了  

  预编译(函数执行前)※ 
  1. 创建AO对象(Active Object) 
  2. 查找函数形参及函数内变量声明,形参名及变量名作为AO对象的属性,值为undefined 
  3. 实参形参相统一,实参值赋给形参 
  4. 查找函数声明,函数名作为AO对象的属性,值为函数引用

  预编译(脚本代码块script执行前) 
  1. 查找全局变量声明(包括隐式全局变量声明,省略var声明),变量名作全局对象的属性,值为undefined 
  3. 查找函数声明,函数名作为全局对象的属性,值为函数引用



posted @ 2017-11-09 23:12  lyls  阅读(419)  评论(0编辑  收藏  举报