文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Deno与Node.js的区别是什么

2024-04-02 19:55

关注

本篇文章给大家分享的是有关Deno与Node.js的区别是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

1. Deno是一个基于V8构建的安全的TypeScript的Google运行时引擎。

  它建立了:

l Rust(Deno的核心是用Rust编写的,node用C++编写的)

l Tokio(以Rust编写的事件循环)

l TypeScript(Deno支持开箱即用的JavaScript和typeScript)

l V8(谷歌在Chrome和node中使用的JavaScript进行时)

  2. 它支持Type2.8开箱即用,没有package.json,没有npm 不追求兼容Node,通过URL方式引入依赖而非通过本地模块,并且在第一次运行的时候进行加载和缓存,并仅在代码使用运行,依赖才会更新。

n 可以控制文件系统和网络访问权限以运行沙盒代码,默认访问只读文件系统可访问,无网络权限。V8 和 Golang 之间的访问只能通过 protobuf 中定义的序列化消息完成;

n 最终创建单一可执行文件;

n 支持 top-level 的 await;

n 最终的目标是兼容浏览器;

n 可以作为库引入,用于建立自己的 JavaScript runtime。

  这几个特性,有很多个都是针对目前 NodeJs 的痛点而来的,包括无 package.json、依赖的引入和更新方式,针对的就是被广泛吐槽的过大的。

  同时,不再追求兼容 node,可以视为 ry 想彻底抛弃 node 包袱,打造一个更好的 JS 运行时。

它的安全性也是很放心的,它最重要的功能之一就是安全性很高,与NodeJs相反,Deno默认执行沙箱中代码,这就意味运行是无权访问。

我们来看看它的工作原理:

  (async () => {

   const encoder = new TextEncoder();

   const data = encoder.encode('Hello world');

   await Deno.writeFile('HelloWorld.txt', data);

   await Deno.writeFile(' HelloWorld2.txt', data);

  })();

  该脚本创建了两个文本文件,其中包含一条消息。代码正在沙箱中执行,因此它无法访问文件系统。HelloWorld.txt HelloWorld2.txt Hello world

  另请注意,我们正在使用Deno命名空间而不是fs模块,就像在Node中一样。Deno命名空间提供了许多基本的辅助函数。通过使用命名空间,我们正在失去浏览器兼容性。

  当然我们用到Deno的时候,会想到浏览器的兼容性,Deno旨在浏览器兼容。从技术上讲,在使用ES模块时,我们不必使用任何构建工具(如webpack)来使我们的应用程序啊可以在浏览器中使用。

  但是像Babel这样的工具会将代码转换成ES5版本的JavaScript,因此 即使在不支持该语言所用最新功能的旧版浏览器中,代码也可以运行。但这也是最终文件中包含大量不必要的代码并使输出文件膨胀为代价的。

  由我们决定我们的主要目标是什么,并相应地做出选择。

TypeScript支持开箱即用

  Deno使得无需任何配置文件即可轻松使用TypeScript。仍然可以用纯JavaScript编写程序并使用Deno执行它们而不会有任何麻烦。

  Deno是TypeScript和JavaScript的新运行时,是一个有趣的项目,现在已经稳定增长了很长一段时间。但是在它被认为是生产就绪之前还有很长的路要走。

借助它的分散式方法,它需要从集中式软件包注册表(即npm)中释放JavaScript生态系统。

以上就是Deno与Node.js的区别是什么,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯