js的执行过程

时间:2021-09-02 21:21:14   收藏:0   阅读:23

js的执行过程

两个阶段:预解析->执行

一、作用域

词法作用域

静态作用域与动态作用域

var value = 1;

function foo() {
    console.log(value);
}

function bar() {
    var value = 2;
    foo();
}

bar();

// 结果是 ???==>1
/*
**静态作用域:**
执行 foo 函数,先从 foo 函数内部查找是否有局部变量 value,
如果没有,就根据书写的位置,查找上面一层的代码,
也就是 value 等于 1,所以结果会打印 1。

**动态作用域**:
执行 foo 函数,依然是从 foo 函数内部查找是否有局部变量 value。
如果没有,就从调用函数的作用域,也就是 bar 函数内部查找 value 变量,所以结果会打印 2。


结果:js采用的是静态作用域,所以结果是 1。
*/

在 js 中词法作用域规则:

二、预解析

var a = 25;
function abc (){
  console.log(a);//undefined
  var a = 10;
}
abc();
// 如果变量和函数同名的话,函数优先
console.log(a);//? a() {console.log(‘aaaaa‘);}
function a() {
  console.log(‘aaaaa‘);
}
var a = 1;
console.log(a);//1

三、执行

原文:https://www.cnblogs.com/jiajia-hjj/p/15219824.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!