JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式、声明式、函数式编程范式。
JavaScript和Java的区别
在我刚开始学JavaScript的时候,总感觉Java和JavaScript差不多,所以就没怎么关注JavaScript,直到工作后才知道,两者没有啥关系。有说有,那就是JavaScript意欲接触Java的势头进行炒作,结果JavaScript的名声也起来了。
不的不说,JavaScript在操作html方面确实方便,因此在页面开发中是不可替代的,大名鼎鼎的各种web UI框架大多数基于的都是JavaScript。
JavaScript是解释型的语言,因此需要解释系才能执行,之所以在浏览器中能运行,是由于V8引擎,而让js在成为全栈语言的就是这个引擎。Node基于V8开发了一套全新的解释器,是JavaScript在后端开发中有了一席之地。
不过V8引擎太大了,在有些场景下可能用不了,于是就有了QuickJs。
QuickJs
QuickJS is a small and embeddable Javascript engine. It supports the ES2020 specification including modules, asynchronous generators, proxies and BigInt.
QuickJs 的作者堪称传奇。
这才是真正的大佬。当国内程序员还在不断优化node的代码的时候,人家直接搞出来QuickJs实现了降维打击。QuickJs用四个字来形容 - 短小精悍。
安装
本文使用Ubuntu环境,
- 下载QuickJs,可以使用github或者通过我的网盘进行进行下载。链接: https://pan.baidu.com/s/1u_evSWZsRN6uVNEJi5wkyw 提取码: dmmu
- 修改Makefile,默认的安装路径是/usr/local,需要root身份安装。也可以自定义,修改Makele文件
prefix=/home/burning/learning/quickjs
- 然后执行 make install, 在相应的目录下就可生成可执行文件了。
简单使用
async function welcome()
{
return "欢迎关注我的微信公众号: 无情剑客";
}
console.log(welcome());
welcome().then(val => {
console.log(val);
})
最终的运行结果如下,关于await和async的使用在下一篇文章中介绍。
写在最后
QuickJs和NAPI结合能够实现JavaScript调用C++语言。后续会出一个系列的QuickJs相关的文章,欢迎关注。
公众号
更多内容,欢迎关注我的微信公众号: 无情剑客。