内容简介:deno是一个基于v8、rust和Tokio的Javascript/Typescript的安全运行时。它在内部嵌入了一个typescript的编译器。可以将typescript编译成js然后运行在v8上,并通过c++ libdeno实现js与rust的通信交互,当然deno也可以直接运行Javascript代码。linux/macwindows
deno介绍
deno是一个基于v8、rust和Tokio的Javascript/Typescript的安全运行时。它在内部嵌入了一个typescript的编译器。可以将typescript编译成js然后运行在v8上,并通过c++ libdeno实现js与rust的通信交互,当然deno也可以直接运行Javascript代码。
deno安装
linux/mac
curl -fsSL https://deno.land/x/install/install.sh | sh
windows
iwr https://deno.land/x/install/install.ps1 | iex
详细的细节请参考 官网安装介绍
deno的简单例子
计算斐波那契数列公式
摘抄自维基百科 斐波那契数列
run javascript
test.js
function fibo(n) {
if (n === 0) return 0;
let fn = 0, nextFn = 1;
let tmp_fn = 0, tmp_nextFn = 0;
for (var i = 0; i < n; i++) {
tmp_fn = nextFn;
tmp_nextFn = nextFn + fn;
fn = tmp_fn;
nextFn = tmp_nextFn;
}
return tmp_fn;
}
console.log(fibo(13));
deno ./test.js
run typescript
test.ts
function fibo(n: number) {
if (n === 0) return 0;
let fn: number = 0, nextFn: number = 1;
let tmp_fn: number = 0, tmp_nextFn: number = 1;
for (let i: number = 0; i < n; i++) {
tmp_fn = nextFn;
tmp_nextFn = nextFn + fn;
fn = tmp_fn;
nextFn = tmp_nextFn;
}
return tmp_fn;
}
console.log(fibo(13));
deno ./test.ts
deno内部结构
下图1是deno的部分文件截图
图1 deno文件的部分截图
上图中圈出来的三个文件夹分别是
- js
- libdeno
- src
分别对应deno的api层、中间层、和实现层,其中js中主要是typescript的代码,包含typescript的编译器和deno暴露给用户的api。libdeno中主要是c++代码,用来加载v8实例,实现typescript和rust的通信。src文件中主要是rust的代码,是deno功能的具体实现。例如用户使用File实例的write方法来写文件,实际上是api层(typescript)通过中间层(libdeno)将数据传输给实现层(rust),最终写文件操作由rust去完成。deno结合了Typescript/Javascript的易用性和rust的系统语言能力。下图2可以清晰的表示js和rust之间的逻辑关系。
图来自于 官网 ,图2 deno的架构图
预告
~~~接下来还会有两篇文章分析deno的内部原理~~~
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 干货|全面理解无监督学习基础知识
- Netty基础系列(3) --彻底理解NIO
- 分布式基础(一):CAP 的理解
- 框架基础:深入理解Java注解类型(@Annotation)
- Java基础系列2:深入理解String类
- java基础:深入理解Class对象与反射机制
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
CSS实战手册(第2版)
[美] David Sawyer McFarland / 俞黎敏 / 电子工业出版社 / 2010-6 / 69.80元
本书从介绍最基本的CSS知识开始,到建立用于打印网页的CSS和改进你的CSS习惯的最佳实践。将关于CSS的选择器、继承、层叠、格式化、边距、填充、边框、图片、网站导航、表格、表单、浮动布局、定位网页上的元素,以及用于打印网页的CSS等技术通过逐步地讲解与教程串联了起来。每章内容从简单到复杂,一步一步地建立起一个完整的教程示例,并在每章都会详细讨论一些技巧、最佳实践和各浏览器之间一致性的兼容问题及如......一起来看看 《CSS实战手册(第2版)》 这本书的介绍吧!