js 的执行过程

首先来看一下LHS和RHS

  LHS:是赋值操作的左侧,可以理解为赋值操作的目标是谁

  RHS:是赋值操作的右侧,谁是赋值操作的源头。

接下来看看这段代码的执行过程:

  function foo(a){

    console.log(a):

  }

   foo(2);

我们把这段代码想想成一段对话:

  引擎:作用域,我需要对foo 进行RHS 引用,你见过吗

      作用域:我见过呀,编译器刚刚声明了,他是一个函数,给你,

  引擎:好,来执行一下foo

  引擎:作用域,我需要对a进行一次LHS,你见过吗

     作用域:编译器把a设置成了一个形式参数,给你

     引擎:我要把2 赋值给a

     引擎:作用域,我又要对console进行一次RHS引用,你见过吗

     作用域:哦 这个是内置对象,给你

      引擎:我看看里面有没有log(),哦 ,找到了

     引擎:作用域,在帮查下a的RHS引用,

     作用域:这个变量没有动过,给你

     引擎:我来把a的值传递给log吧

 

posted @ 2017-03-19 17:55  Jensen_Lv  阅读(154)  评论(0编辑  收藏  举报