这款前端可视化代码执行工具,打残js执行过程

简介: 这款前端可视化代码执行工具,打残js执行过程

一、工具页面



整个页面看起来是如此的朴素,包含三个区块:代码区块、操作区块、可视化区块,三个区块的功能如下所示:


  1. 代码区块


  1. 该部分主要负责编辑要执行的代码,特别注意,该工具不支持一些函数,例如:setTimeout、setInterval等,这部分确实是该平台需要进一步优化的点。


  1. 操作区块


操作区块主要负责代码的移动,First按钮将代码运行到开头;Last按钮将代码运行到末尾;Prev负责逐行将代码移动到上一步;Next负责逐行将代码移动到下一步。


  1. 可视化区块


可视化区块用来展示执行过程中的调用栈、相关变量以及对应的变量值。


640.png


二、秒杀js关键技术点


在js中有很多晦涩难懂的关键技术点,例如变量对象、调用栈、代码执行过程等,下面用一段代码,并通过该工具可以更加直观的了解这些内容,从而降低理解成本。

var a = 10;
function f1() {
  var b = 20;
  return a + b;
}
function f2(e) {
  var c = 30;
  var d = f1();
  function f2Child() {
      return d * 2;
  }
  return c + d + e + f2Child();
}
f2(15);

2.1 变量对象


变量对象是一个与执行上下文相关的特殊对象,存储着上下文中声明的内容。按照执行上下文可划分为全局上下文中的变量对象和函数上下文中的对象,当执行到函数f2时,其变量对象中的三部分均得到创建:


  1. 创建arguments对象;
  2. 检查function函数声明创建属性;
  3. 检查变量声明创建属性。


详细内容可看前面的文章前端百题斩【011】——通俗易懂的变量对象


640.png


2.2 调用栈


当JavaScript执行全局代码的时候,会创建全局执行执行上下文(整个页面的生存周期内,全局执行上下文只有一份);在调用一个函数的时候会创建该函数的执行上下文(执行环境)。将多个执行上下文管理起来的就是调用栈(调用栈就是用来管理函数调用关系的一种数据结构),当函数运行到f2Child这个函数的时候,其调用栈是什么样子的呢?用该工具可以很好的进行展示。



640.png



2.3 代码执行过程


通过点击操作区块的按钮可看到可视化区域中的调用栈和变量对象在不断变化,从而可以清晰了解整个代码执行过程。


640.gif


这个工具虽然还有很多函数不支持,但是仍然不能阻挡其的优点,欢迎各位老铁实操使用。


相关文章
|
4天前
|
JavaScript
鼠标事件(点击换色)分别使用js和jQuery代码实现
鼠标事件(点击换色)分别使用js和jQuery代码实现
12 1
|
5天前
|
前端开发 JavaScript 数据安全/隐私保护
前端JS正则校验密码之3种实现方式
这篇文章展示了三种使用JavaScript正则表达式来校验密码的方法,密码需要满足包含大写字母、小写字母、数字及特殊字符,并在8到16位之间,同时提供了示例代码和实现效果。
6 1
前端JS正则校验密码之3种实现方式
|
1天前
|
JavaScript 前端开发 iOS开发
优秀的JavaScript代码技巧大分享
优秀的JavaScript代码技巧大分享
12 3
|
1天前
|
JavaScript 前端开发 测试技术
编写高质量JavaScript代码怎么做
编写高质量JavaScript代码怎么做
11 2
|
4天前
|
前端开发 JavaScript 程序员
聊聊前端 JavaScript 的扩展运算符 “...“ 的使用场景
聊聊前端 JavaScript 的扩展运算符 “...“ 的使用场景
|
4天前
|
前端开发 JavaScript 程序员
前端 JavaScript 的 _ 语法是个什么鬼?
前端 JavaScript 的 _ 语法是个什么鬼?
|
4天前
|
JavaScript
JS九行代码实现1~10猜数字游戏
JS九行代码实现1~10猜数字游戏
11 0
|
5天前
|
前端开发
前端代码书写规范
【8月更文挑战第15天】前端代码书写规范
7 0
|
5天前
|
JavaScript 前端开发
JavaScript中的代码执行顺序
这篇文章通过示例代码解释了JavaScript中的代码执行顺序,特别是`load`事件的使用,它确保只有在整个页面加载完成后才会执行指定的JavaScript函数。
|
5天前
|
JSON 前端开发 Java
前端如何提交数据给后端(包含前端和后端代码)
前端如何提交数据给后端(包含前端和后端代码)

热门文章

最新文章