运行 JavaScript 代码片段的 20 种工具

前端日常开发中,我们使用喜爱的 IDE 调试 JavaScript 代码,比如我喜欢的代码编辑器有两个,Sublime Text 3 和 VS Code,前几年还使用过 Atom,偶尔我们会遇到临时需要快速分享给同事或者朋友一段代码的场景,那么在线的 JavaScript 运行环境的重要性就体现出来了。

作者:佚名

前端日常开发中,我们使用喜爱的 IDE 调试 JavaScript 代码,比如我喜欢的代码编辑器有两个,Sublime Text 3 和 VS Code,前几年还使用过 Atom,偶尔我们会遇到临时需要快速分享给同事或者朋友一段代码的场景,那么在线的 JavaScript 运行环境的重要性就体现出来了。

为了解决这样的问题,业界涌现出了很多很优秀的在线编辑器。比如 JS Bin、JS Fiddle、Code Pen、Code Sandbox 等,接触前端这些年也陆陆续续发现了一些不错的其他选择,再看下浏览器收藏夹,已经有20余种。

下面我们使用20种工具执行一段经过尾递归优化过的阶乘函数

1、使用 iTerm2

在终端工具中安装 node 环境,使用 node 运行环境来执行 JS 代码是我们学习 node 时候必知必会的一件事

2、使用 Sublime Text 3

在 Sublime Text 3 中,我们可以使用 build system 来创建构建命令,使用构建命令来快速执行 JS 代码

快捷键:CMD + B

配置文件

首先安装依赖 babel-cli

 
  1. npm i -g babel-cli

新建 build system

 
{ "path": "/usr/local/bin", "working_dir": "${project_path:${folder}}", "selector": "source.js", "encoding": "utf-8", "shell": true, "windows": { "cmd": ["taskkill /f /im node.exe >nul 2>nul & node $file"] }, "osx": { "cmd": ["killall node >/dev/null 2>&1; node $file"] }, "linux": { "cmd": ["killall node >/dev/null 2>&1; node $file"] }
} 

效果图

3、使用 VSCode

在 VSCode 中,我们可以建立一个 task 来运行 JS,实际上是借助内置终端来执行 node 命令运行JS

快捷键:CMD + Shift + B

配置文件

 
  1. /.vscode/tasks.json
 
{ // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { "label": "Run ES6", "type": "shell", "command": "node ${file}", "group": { "kind": "build", "isDefault": true } } ]
} 

效果图

4、使用浏览器控制台

我们经常使用浏览器的 Console 功能来调试 JS 代码,比如 Chrome 的 DevTools,火狐的 Web 控制台,这些我们已经不陌生了

5、使用 Firefox 代码草稿纸

在 Firefox 浏览器中,有一个特别好用的功能叫 代码草稿纸,你可以在这里面输入一些 JS 代码执行查看结果

快捷键:在火狐浏览器下 Shift + F4

6、使用 Chrome Sources 面板

Chrome 提供了强大的 DevTools,其中 Sources 面板允许你建立一些 Snippets方便执行 JS 代码

快捷键:CMD + Enter 执行代码

7、使用 JS Bin

JS Bin 是一个开源的用于 debug web 应用的工具,工具面板具有 Console,可以用于执行 JS 代码

8、使用 JS Fiddle

JS Fiddle 是一个前端同学经常写 demo 例子的好地方,这里可以以 CDN 的方式使用一些第三方类库,很方便搭建页面demo。

因为 JS Fiddle 工具本身并没有提供 console 面板,所以可以配合浏览器开发者工具来打印输出 JS 代码结果

9、使用 CodePen

CodePen 是一个非常棒的在线代码编辑器,几乎可以编写所有的前端Web应用。在这里使用它来执行一段 JS 代码真的是大才小用了。

10、使用 MDN 的 “JavaScript Demo”

经常查阅 MDN 的小伙伴一定能记得,在一些 JavaScript 文档中会有一个 JavaScript Demo小工具,比如说 JavaScript 标准内置对象 Function,在这里可以执行一些 JS 代码

11、使用 PLAYCODE

PLAYCODE 提供了在线快速运行 Web 程序的环境

12、使用 Flems

Flems 提供了一个 Web 开发环境,可以分享一些前端小demo

13、使用 JSitor

JSitor 是一个不错的在线执行 JS 代码工具,我比较喜欢它的代码截图功能,能生存很漂亮的代码截图图片,不过目前功能还不是特别完善,比如代码的高亮暂时是个问题。

14、使用 Code Sandbox

Code Sandbox 是一个在线的可以创建Web应用,特点是可以使用一些类库模版,比如 React/Vue/Angular 是创作原型的好地方,我经常使用它来编写一些 Vue 小 Demo

15、使用 Web Maker

Web Maker 是一个可以快速在浏览器创建离线Web应用,Web Maker 还提供了 Chrome 插件,可以离线使用

16、使用 LeetCode Playground

LeetCode 提供了优秀的 Playground 工具,支持各种语言版本切换,其中也支持 JavaScript,还能没事儿刷刷题不是

17、使用 Repl.it

Repl.it 是一个一站式可在线构建、协作的IDE,同时也提供了 Node 运行环境,还可以连接 github 使用 gist 同步代码片段

18、使用 RunKit + npm

RunKit + npm 在 npm 上我们能发现很多优秀的库,npm 提供了一个功能,可以使用 RunKit取运行测试你的 package,当然也能测试一段代码

19、使用 StackBlitz

StackBlitz 有在线 VSCode 之称,编辑器使用的是微软开源的 Monaco Editor,和 Code Sandbox 类似,提供了一些类库模版,但是目前还没有 Vue 的

20、使用 Plunker Next

Plunker Next 新版的 Plunker 提供了在线创建小 demo 的能力,同时也便于分享

其他

好用的工具层出不穷,其实还有一些其他的工具或者解决方案可以作为选择,比如下面四个不同的类型,我每个挑选了一个代表工具

在线编程

  • scrimba - The interactive screencasting platform

本地应用

  • RunJS - A scratchpad for your thoughts, a playground for your creativity...

编辑器插件

Quokka.js - Quokka.js is a developer productivity tool for rapid JavaScript / TypeScript prototyping. Runtime values are updated and displayed in your IDE next to your code, as you type.

云开发环境

  • Visual Studio Online - Cloud-powered dev environments accessible from anywhere

工具对比

总结

其实对于我而言

  • 如果想运行一段代码得到测试结果,最快的方式会选用浏览器控制台,因为浏览器就是最棒的工具
  • 如果想要写一个 demo 放在博客上,我会选择 jsfiddle、codepen、codesandbox,这里提供了写demo需要的一切
  • 如果想分享漂亮的代码片段,我会使用 Carbonize 生成一张图片,就像博文开头的那张图片

使用在线编辑器的意义我觉得在于快捷、便于分享与协作,而很爱的其实还是VSCode。

没准儿你正在编写你的 playground,或者你有更好的工具,希望和大家一起分享

阅读目录(置顶)(长期更新计算机领域知识)

阅读目录(置顶)(长期更新计算机领域知识)

阅读目录(置顶)(长期科技领域知识)

歌谣带你看java面试题

第一百一十八期:运行 JavaScript 代码片段的 20 种工具相关推荐

  1. 第一百一十六期:不能错过!你必须知道的3种重要Python技能

    学习Pandas是很棒的体验,学习Numpy也很有趣.但是,你是否过早地开始使用程序库了呢?这也许是因为你还没有意识到pure python的魅力. 作者:读芯术 学习Pandas是很棒的体验,学习N ...

  2. 第一百一十四期:盘点十大最新Web UI测试工具

    本文为您盘点目前十大最新Web UI测试工具的各自优缺点,以方便您根据实际情况进行选择. 作者:陈峻 在过去的几年中,业界至少出现了十二种全新的UI测试自动化工具.虽然每一种工具都有各自的侧重点,但是 ...

  3. 第一百一十六节,JavaScript,DOM操作样式

    JavaScript,DOM操作样式 一.操作样式 CSS作为(X)HTML的辅助,可以增强页面的显示效果.但不是每个浏览器都能支持最新的CSS能力.CSS的能力和DOM级别密切相关,所以我们有必要检 ...

  4. 第一百一十四节,JavaScript文档对象,DOM进阶

    JavaScript文档对象,DOM进阶 学习要点: 1.DOM类型 2.DOM扩展 3.DOM操作内容 DOM自身存在很多类型,在DOM基础课程中大部分都有所接触,比如Element类型:表示的是元 ...

  5. 第一百一十九期:支付宝历年双十一背后的技术揭秘

    和过去10年一样,2019年天猫双11又创造了一个全新的纪录.这个数字背后,是数代支付宝工程师们殚精竭虑.不断突破技术难关. 作者:蚂蚁金服科技 自从有了双十一这个电商节日,很多技术人的生命轨迹都改变 ...

  6. 第一百一十五期:Web开发必须掌握的三个技术:Token、Cookie、Session

    在Web应用中,HTTP请求是无状态的.即:用户第一次发起请求,与服务器建立连接并登录成功后,为了避免每次打开一个页面都需要登录一下,就出现了cookie,Session. 作者:一颗小梪梪 在Web ...

  7. FME模板兴趣班第十八期(面遮挡处理) 任务小结

    班长欣欣 一.题目说明 对面进行遮挡处理,处理要求如下: 多个面之间存在压盖,要求压盖区域用Level高的遮挡Level低的,并将压盖区域从Level低的面中擦除.如下图所示: 面1.面2.面3 的L ...

  8. COS访谈第十八期:陈天奇

    COS访谈第十八期:陈天奇 [COS编辑部按] 受访者:陈天奇      采访者:何通   编辑:王小宁 简介:陈天奇,华盛顿大学计算机系博士生,研究方向为大规模机器学习.他曾获得KDD CUP 20 ...

  9. 鲁大师电动车智能化测评报告第十八期:加量降价,九号完成产品破圈?

    鲁大师第十八期智能化电动车测评排行榜数据来源于鲁大师智慧实验室,测评的车型均为市面上主流品牌的主流车型.截止目前,鲁大师智能化电动车测评的车型高达90余种,且还在不断增加和丰富中. 1. 测评依据 鲁 ...

最新文章

  1. 使用Android Studio新建Project并建立多个module
  2. [MySQL 源码] 从buffer pool中获取空闲block流程
  3. html pc端万年历插件,# pc端个性化日历实现
  4. Hadoop(5)-Hive
  5. 浅议C#客户端和服务端通信的几种方法:Rest和GRPC和其他
  6. Spring velocity 中文乱码 解决方案
  7. OPENNLP——java的NLP工具
  8. ERROR 1201 (HY000) Could not initialize master info structure
  9. groupadd命令详解(实例)
  10. 电子商务B2C:尾巴上的比特生存法则
  11. Editplus从下载到使用
  12. css 更改鼠标为手状样式
  13. C语言初阶——手把手教零基础/新手入门(万字心得笔记)
  14. DeepFool公式理解
  15. CSDN愈来愈金钱化
  16. Unity实时GI与烘焙GI
  17. open judge1.7.14
  18. 微x怎么设置主题_苹果x前置呼吸灯怎么设置
  19. 关于泰勒展开的细节-《三体》读后感的读后感
  20. 华为荣耀开机停留在android,华为荣耀8变砖无法开机怎么办 华为荣耀8变砖无法开机解决方法...

热门文章

  1. 业务逻辑 : forex mlm
  2. codeforce Gym 100500F Door Lock (二分)
  3. 在IT的路上,我在成长
  4. usaco-sprime-superprime-pass
  5. HTTP Live Streaming直播(iOS直播)技术分析与实现(转)
  6. typedef struct 是什么意思
  7. html页面根据分辨率缩放,html2Canvas根据不同分辨率,生成pdf内容自适应
  8. php print div,JavaScrip实现PHP print_r的数功能(三种方法)
  9. 【电路补习笔记】10、电感式开关电源(BUCK 降压电路)
  10. C++ 高级篇(二)—— 名空间 (Namespaces)