美文网首页
基础知识整理

基础知识整理

作者: 大饼脸me | 来源:发表于2017-06-12 11:39 被阅读7次

执行上下文栈

可执行代码:

1、全局代码

2、函数代码

3、eval代码

执行上下文栈:

ECStack = [ ];

当执行一个函数的时候,就会创建一个执行上下文,并且压入执行上下文栈,当函数执行完毕的时候,就会将函数的执行上下文从栈中弹出。

作用域

作用域是指程序源代码中定义变量的区域。

作用域规定了如何查找变量,也就是确定当前执行代码对变量的访问权限。

JavaScript 采用词法作用域(lexical scoping),也就是静态作用域。

词法作用域:

函数的作用域在函数定义的时候就决定了

动态作用域:

函数的作用域在函数调用的时候才决定

静态作用域与动态作用域:


var value = 1;
function foo() {
  console.log(value);
}

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

bar();

静态作用域输出值:1(静态作用域下,foo的作用域是全局的)

动态作用域输出值:2(动态作用域下,foo的作用域是bar函数)

变量提升

函数及变量的声明都将被提升到函数的最顶部。
JavaScript 初始化不会提升

var foo = function () {
    console.log('foo1');
}
foo();  // foo1

var foo = function () {
    console.log('foo2');
}
foo(); // foo2
function foo() {
    console.log('foo1');
}
foo();  // foo2

function foo() {
    console.log('foo2');
}
foo(); // foo2

相关文章

  • iOS动画基础准备

    做开发这么长时间,由于是中途转的iOS ,有许多基础知识掌握的不牢靠,所以最近决定整理整理基础知识,补补之前欠...

  • android 最全 图片相关知识整理

    android 最全 图片相关知识整理 图片基础知识梳理图片基础知识梳理(1) - ImageView 的 Sca...

  • Mysql基础操作扫盲

    Mysql基础知识点整理:思维发散 未完,待续

  • Android面试知识整理-java篇

    Android面试知识整理-android基础知识 Android面试知识整理-性能优化 Android面试知识整...

  • 基础知识整理

    HTML部分 HTML5 1、html语义化:section、nav...2、本地储存3、多媒体:video、au...

  • 基础知识整理

    执行上下文栈 可执行代码: 1、全局代码 2、函数代码 3、eval代码 执行上下文栈: ECStack = [ ...

  • 基础知识整理

    1、并行和并发 并行是指两个或者多个事件在同一时刻发生。 并发是指两个或多个事件在同一时间间隔内发生。 注:串行是...

  • 基础知识整理

    1、NSArray与NSSet的区别? 2、NSHashTable与NSMapTable? (注:NSHashTa...

  • JavaScript基础知识小记

    前言 最近发现自己许多JavaScript基础知识掌握不牢固。趁空闲时间,整理一下JavaScript的基础知识。...

  • jvm面试就靠他了

    最近整理了一些面试需要的jvm的基础知识

网友评论

      本文标题:基础知识整理

      本文链接:https://www.haomeiwen.com/subject/xpklqxtx.html