前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaScript引擎相关名词

JavaScript引擎相关名词

作者头像
薛定喵君
发布2019-11-06 01:25:39
5710
发布2019-11-06 01:25:39
举报
文章被收录于专栏:薛定喵君

JS引擎的一些事

JS引擎

  • 一个读取代码并运行的引擎,没有单一的"JS引擎";
  • 每个浏览器都有自己的引擎,流行的引擎项目:
    • V8 开源,由 Google 开发,用 C ++ 编写
    • Rhino 由 Mozilla 基金会管理,开源,完全用 Java 开发
    • SpiderMonkey 第一个支持 Netscape Navigator 的 JavaScript 引擎,目前正供 Firefox 使用
    • JavaScriptCore 开源,以Nitro形式销售,由苹果为Safari开发
    • KJS KDE的引擎,最初由 Harri Porten 为 KDE 项目中的 Konqueror 网页浏览器开发
    • Chakra(JScript9) Internet Explorer
    • Chakra(JavaScript) Microsoft Edge
    • Nashorn OpenJDK 的一部分,由 Oracle Java 语言和工具组编写
    • JerryScript 物联网的轻量级引擎

作用域

  • 可以从中访问变量的"区域"

词法作用域

  • 在词法阶段的作用域,换句话说,词法作用域是由你在写代码时将变量和块作用域写在哪里来决定的,因此当词法分析器处理代码时会保持作用域不变

块作用域

  • 由花括号{}创建的范围

作用域链

  • 函数可以上升到它的外部环境(词法上)来搜索一个变量,它可以一直向上查找,直到它到达全局作用域

同步

  • 一次执行一件事, “同步”引擎一次只执行一行,JavaScript是同步的

异步

  • 同时做多个事,JS通过浏览器API模拟异步行为

事件循环(Event Loop)

  • 浏览器API完成函数调用的过程,将回调函数推送到回调队列(callback queue),然后当堆栈为空时,它将回调函数推送到调用堆栈

堆栈

  • 一种数据结构,只能将元素推入并弹出顶部元素。 想想堆叠一个字形的塔楼; 你不能删除中间块,后进先出

  • 变量存储在内存中

调用堆栈

  • 函数调用的队列,它实现了堆栈数据类型,这意味着一次可以运行一个函数。 调用函数将其推入堆栈并从函数返回将其弹出堆栈

执行上下文

  • 当函数放入到调用堆栈时由JS创建的环境

闭包

  • 当在另一个函数内创建一个函数时,它“记住”它在以后调用时创建的环境

垃圾收集

  • 当内存中的变量被自动删除时,因为它不再使用,引擎要处理掉它

变量的提升

  • 当变量内存没有赋值时会被提升到全局的顶部并设置为undefined

this

  • 由JavaScript为每个新的执行上下文自动创建的变量/关键字
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/07/04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档