[Javascript] Call Stack

Every time when a function run it will be push into the call stack and put on the top,  you can think call stack is something like a heap... Javascirpt has only one call stack.

In the picture, main() get call first, so put into the call stack;

second, printSquare(), put into the call stack;

third, inside printSquare() call suqare() function, so put into call stack;

fourth, inside square() function, multiply() function get call....

--------------------------

When function return or done, the function will be poped up from the call stack:

So, multiply() function ruturned, so pop up from the call stack;

then square();

then inside printSquare() function, console.log() funciton get call, so need to push intot the call stack.

After that, console.log() pop up;

printSquare() pop up;

finally main() pop up;

You can see the call stack from the Chrome dev tool‘s source tab when you use ‘debugger‘.

时间: 2024-10-26 07:17:48

[Javascript] Call Stack的相关文章

[LeetCode][JavaScript]Implement Stack using Queues

Implement Stack using Queues Implement the following operations of a stack using queues. push(x) -- Push element x onto stack. pop() -- Removes the element on top of the stack. top() -- Get the top element. empty() -- Return whether the stack is empt

使用javascript的stack数据结构,实现进制转换

function Stack() { var items = []; this.push = function(element){ items.push(element); } this.pop = function(){ return items.pop(); } this.peek = function() { return items[items.length -1]; } this.isEmpty = function() { return items.length == 0; } th

《数据结构与算法-Javascript描述》

今年的上半年,项目原因大部分时间在写js,这期间把easyui,echarts,bootstrap都用了点皮毛,写的多了,自然也多了些感觉,不过仅局限于运用层面,于是决定再系统的看些javascript方面的书,强化运用能力,便有了这本~来自于国内知名公司前端工程师翻译自国外的书,见名知意用Javascript角度来讲数据结构和算法,一方面可以把javascript的基础知识加强,一方面加深数据结构以及算法的理解和应用. 全书篇幅不长,第一章简明扼要对javascript做了简单的介绍,基本语法

一份来自于全球的前端面试题清单,看看老外喜欢考哪些题(部分有答案)

方括号中的蓝色标题是题目的出处,有些题目在原址内包含答案.搜集的大部分外国前端面试题没有做翻译,单词并不难,大家应该看得懂.题目旁边的方括号内, 简单记录了与此题相关的知识点.总共大概一千多道,包含国内的题目,如有错误,欢迎指正.有些原链可能已无法打开,有些可能需要代理才能查看. 一.HTML [HTML related interview questions] 1.What is doctype? Why do u need it? 2.What is the use of data-* at

演讲稿: 如何使用增强现实技术提高应用的用户体验

With the accellerated evolution of mobile hardware, application developers tend to reconsider the importance of the Augmented Reality technology ( called AR for short in this article subsequently ) in regard to satisfy their customers better with enh

Effective JavaScript Item 29 避免使用非规范的Stack Inspection属性

本系列作为Effective JavaScript的读书笔记. 由于历史原因,很多JavaScript执行环境中都提供了某些方式来查看函数调用栈.在一些环境中,arguments对象(关于该对象可以查看Item 22,23,24)上有两个额外的属性: arguments.callee - 它引用了正在被调用的函数 arguments.caller - 它引用了调用当前函数的函数 关于arguments.callee的使用,可以参考下面的代码: var factorial = (function(

JavaScript实现栈结构(Stack)

JavaScript实现栈结构(Stack) 一.前言 1.1.什么是数据结构? 数据结构就是在计算机中,存储和组织数据的方式. 例如:图书管理,怎样摆放图书才能既能放很多书,也方便取? 主要需要考虑两个问题: 操作一:新书怎么插入? 操作二:怎么找到某本指定的书? 常见的数据结构: 数组(Aarray) 栈(Stack) 链表(Linked List) 图(Graph) 散列表(Hash) 队列(Queue) 树(Tree) 堆(Heap) 注意:数据结构与算法与语言无关,常见的编程语言都有直

JavaScript Stack

function Stack() { var items = []; this.push = function(item) { items.push(item) } this.pop = function() { return items.pop() } this.peek = function() { return items[items.length - 1] } this.isEmpty = function() { return items.length == 0 } this.size

JavaScript栈和堆内存,作用域

1.栈 stack"和"堆 heap": 简单的来讲,stack上分配的内存系统自动释放,heap上分配的内存,系统不释放,哪怕程序退出,那一块内存还是在那里.stack一般是静态分配内存,heap上一般是动态分配内存. 2.基本类型和引用类型: 基本类型:存放在栈内存中的简单数据段.数据大小确定,内存空间大小可以分配. 引用类型:存放在堆内存中的对象,变量中实际保存的是一个指针,这个指针指向另一个位置.每个空间大小不一样,要根据情况开进行特定的分配. 详见<Javas