我的编程空间,编程开发者的网络收藏夹
学习永远不晚

node环境和浏览器环境有哪些区别

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

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

node环境和浏览器环境有哪些区别

本文小编为大家详细介绍“node环境和浏览器环境有哪些区别”,内容详细,步骤清晰,细节处理妥当,希望这篇“node环境和浏览器环境有哪些区别”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

区别:1、在node中this指向global,而在浏览器中this指向window;2、浏览器中的js大多数情况下是在直接或间接的操作DOM,而不会在node中操作DOM;3、node中提供了比较方便的组件用于读写文件,而浏览器中则没有。

本教程操作环境:windows10系统、nodejs 12.19.0版本、Dell G3电脑。

node环境和浏览器环境有什么区别

一、全局环境下this的指向

  在node中this指向global而在浏览器中this指向window,这就是为什么underscore中一上来就定义了一 root;

var root = typeof self == 'object' && self.self === self && self ||
             typeof global == 'object' && global.global === global && global ||
             this;

 而且在浏览器中的window下封装了不少的API 比如 alert 、document、location、history 等等还有很多。我门就不能在node环境中xxx();或window.xxx();了。因为这些API是浏览器级别的封装,存javascript中是没有的。当然node中也提供了不少node特有的API。

二、js引擎

  在浏览器中不同的浏览器厂商提供了不同的浏览器内核,浏览器依赖这些内核解释折我们编写的js。但是考虑到不同内核的少量差异,我们需要对应兼容性好在有一些优秀的库帮助我们处理这个问题比如jquery、underscore等等。

  nodejs是基于Chrome's JavaScript runtime,也就是说,实际上它是对GoogleV8引擎(应用于Google Chrome浏览器)进行了封装。V8引 擎执行Javascript的速度非常快,性能非常好。

NodeJS并不是提供简单的封装,然后提供API调用,如果是这样的话那么它就不会有现在这么火了。Node对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好。例如,在服务器环境中,处理二进制数据通常是必不可少的,但Javascript对此支持不足,因此,V8.Node增加了Buffer类,方便并且高效地 处理二进制数据。因此,Node不仅仅简单的使用了V8,还对其进行了优化,使其在各环境下更加给力。

  js引擎都固定了,还对应神马兼容性。

三、DOM操作

  浏览器中的js大多数情况下是在直接或间接(一些虚拟DOM的库和框架)的操作DOM。因为浏览器中的代码主要是在表现层工作。但是node是一门服务端技术。没有一个前台页面,所以我门不会再node中操作DOM。

四、I/O读写

  与浏览器不同,我们需要像其他服务端技术一样读写文件,nodejs提供了比较方便的组件。而浏览器(确保兼容性的)想在页面中直接打开一个本地的图片就麻烦了好多(别和我说这还不简单,相对路径。。。。。。试试就知道了要么找个库要么二进制流,要么上传上去有了网络地址在显示。不然人家为什么要搞一个js库呢),而这一切node都用一个组件搞定了。

五、模块加载

  javascript有个特点,就是原生没提供包引用的API一次性把要加载的东西全执行一遍,这里就要看各位闭包的功力了。所用东西都在一起,没有分而治之,搞的特别没有逻辑性和复用性。如果页面简单或网站当然我们可以通过一些AMD、CMD的js库(比如requireJS 和 seaJS)搞定事实上很多大型网站都是这么干的。

  在nodeJS中提供了CMD的模块加载的API,如果你用过seaJS,那么应该上手很快。

  node还提供了npm 这种包管理工具,能更有效方便的管理我们饮用的库

  当然浏览器这边ES6也有这方面的补充,相信未来会更好。

读到这里,这篇“node环境和浏览器环境有哪些区别”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

免责声明:

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

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

node环境和浏览器环境有哪些区别

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

大数据Atlas在云端环境和本地环境的部署有何区别

云端环境与本地环境部署大数据Atlas存在差异,主要体现在基础设施(云端由云提供商管理,本地需自行维护)、部署模式(云端易于部署,本地需从头开始)、可扩展性(云端几乎无限,本地受限于硬件)、弹性(云端更高,本地需手动故障排除)、成本(云端按需付费,本地一次性资本投入和持续运营成本)、安全(云端由云提供商保障,本地需用户自行配置)等方面。选择合适部署环境时,需考虑监管要求、数据主权、性能等因素,以优化效率、安全性、可扩展性和成本效益。
大数据Atlas在云端环境和本地环境的部署有何区别
2024-04-09

大数据Atlas在云端环境和本地环境的部署有何区别

大数据Atlas数据管理和分析平台,在云端环境和本地环境的部署会有一些区别。在云端环境中,大数据Atlas通常会部署在云服务提供商的基础设施上。在这种情况下,用户可以通过云服务提供商的控制台或API来创建和管理Atlas的实例。云端环境通
大数据Atlas在云端环境和本地环境的部署有何区别
2024-03-11

foreach和for循环的区别有哪些

这篇文章主要讲解了“foreach和for循环的区别有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“foreach和for循环的区别有哪些”吧!区别:1、for通过索引来循环遍历每一个数
2023-07-04

python代码编辑器和集成开发环境有哪些

本文小编为大家详细介绍“python代码编辑器和集成开发环境有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“python代码编辑器和集成开发环境有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、Pyt
2023-06-27

java中循环和递归的区别有哪些

这篇文章主要介绍java中循环和递归的区别有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、说明一般递归调用可以处理的算法,也通过循环去解决常需要额外的低效处理 。 现在的编译器在优化后,对于多次调用的方法处理
2023-06-15

常见PHP服务器环境及特点有哪些

这篇文章主要介绍“常见PHP服务器环境及特点有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“常见PHP服务器环境及特点有哪些”文章能帮助大家解决问题。一、Apache服务器Apache是一个免费
2023-07-05

编程热搜

目录