浏览器工作原理学习(七)

news/2024/7/3 20:52:48

在执行前就进行编译并创建执行上下文的三种情况

  • 当JS执行全局代码得时候,会编译全局代码并创建全局执行上下文,而且在整个页面的生存周期内,全局执行上下文只有一份。
  • 当调用一个函数的时候,函数体内的代码会被编译,并创建函数执行上下文,在函数执行结束后,会被销毁。
  • 当使用eval函数的时候,eval的代码也会编译,并创建执行上下文。

调用栈(用来管理函数调用关系的一种数据结构)

  1. 什么是函数调用?
  • 本质是,就是运行一个函数,在执行函数前,JS引擎会为代码创建全局执行上下文,包含了声明的函数和变量。
  1. 什么是JS的调用栈
  • JS引擎用来管理执行上下文的栈称为执行上下文栈,又称调用栈。
  • 调用栈也是JS引擎追踪函数执行的一个机制。
  • 栈溢出,当入栈的执行上下文超过一定数目,JS引擎就会报错,这个错误就叫做栈溢出(函数递归调用,且无终止条件的时候)。

http://www.niftyadmin.cn/n/2608632.html

相关文章

Linux 查找哪个进程占用文件或文件夹

安装fuser: yum install psmisc -y 查看哪个进程占用文件夹: fuser -mv /nfs

浏览器工作原理学习(八)

作用域 全局作用域中的对象在代码中的任何地方都能访问,其生命周期伴随着页面的生命周期。函数作用域就是在函数内部定义的变量或者函数,并且定义的变量或函数只能在函数内部访问,函数执行结束后,函数内部定义的变量会被销毁。块级…

浏览器工作原理学习(九)

作用域链 什么是作用域链? 每个执行上下文的变量环境中,都包含了一个外部引用,用来指向外部的执行上下文,我们把外部引用称为outer。JS引在执行全局上下文中查找,这个查找的链条就是被称为作用域链。 什么是词法作用…

网页DIV+CSS布局和动画美化全程实例 (陈益材) 随书光盘

网站的建站技术近几年得到迅速的发展,网页的布局与特效动画技术层出不穷,网站建设已经从简单的技术支持时代衍变到现在的视觉美化时代。但如何使设计的网页高人一筹,达到让人过目不忘的境界,如何追求以最简单的特效让网页“亮”起…

浏览器工作原理学习(十)

this 在对象内部的方法中使用对象内部的属性是一个非常普遍的需求。但JS的作用域机制并不支持这一点,为此,JS高出了this机制。this 和作用域链是2套不同的系统。 什么是this? this是和执行上下文绑定的, 每个执行上下文中都有一…

linux下不同服务器间数据传输(rcp,scp,rsync,ftp,sftp,lftp,wget,curl)

rcp rcp不是一种安全的的传输文件的方式,rcp通过rsh(rsh见下面)来执行远程命令,要使用rcp必须经过一些配置,现在rcp已经被scp取代了,常用scp来进行文件传输。要使用rcp,需要具备以下条件&#x…

浏览器工作原理学习(十一)

语言类型 在使用前需要确认其变量数据类型的称为静态语言©,运行过程中需要检查数据类型的语言称为动态语言(js)。在赋值时,语言回进程隐式类型转换,这类语言被称为弱类型语言,不支持隐式类型转换额语言称为强类型语言。 JS数…

【跃迁之路】【423天】刻意练习系列182—SQL(2018.04.04)

(跃迁之路)专栏 叨叨两句 技术的精进不能只是简单的刷题,而应该是不断的“刻意”练习该系列改版后正式纳入【跃迁之路】专栏,持续更新刻意练习——MySQL 2018.04.02 题目描述 DROP TABLE IF EXISTS test1;CREATE TABLE test1 (id int(11) NOT NULL AUTO_…