nodejs和浏览器的区别是什么

区别:1、全局环境下,node中this指向global,而浏览器中this指向window;2、浏览器中可直接或间接的操作DOM和BOM,而node中不会操作DOM和BOM;3、浏览器无法执行nodejs中的文件操作等功能。

nodejs和浏览器的区别是什么

本教程操作环境:windows7系统、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。

1.png

四、I/O读写

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

五、模块加载

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

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

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

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

  当然,关于node和浏览器的区别还有很多,我会随时补充上。

【推荐学习:《nodejs 教程》】

以上就是nodejs和浏览器的区别是什么的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2944763.html

(0)
上一篇 2025年3月11日 22:27:39
下一篇 2025年2月27日 02:27:23

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • nodejs事件循环几个阶段是什么

    nodejs事件循环的阶段:1、timers(定时器)阶段;2、pending callbacks阶段;3、idle、prepare阶段;4、poll(轮询)阶段;5、check(检查)阶段;6、close callbacks阶段。 本教程…

    2025年3月11日
    200
  • nodejs开发使用什么工具

    nodejs开发可使用的工具:1、Sublime Text;2 、Visual Studio Code;3、Webpack;4、Strapi;5、Broccoli;6、Danger;7、Snyk;8、Migrat;9、PM2等等。 本教程操…

    2025年3月11日
    200
  • liunx怎么安装nodejs

    liunx安装nodejs的方法:1、选择好对应的linux版本下载并通过建立软链接的方式将其设置为全局;2、通过源码编译安装;3、通过Ubuntu下的apt-get方式安装。 本文操作环境:linux6.x系统、nodejs v5.10.…

    2025年3月11日
    200
  • nodejs是不是一门语言

    nodejs不是一门语言,而是能够在服务器端运行JavaScript的开放源代码、跨平台执行环境;Node采用Google开发的V8执行代码,使用事件驱动、非阻塞和异步输入输出模型等技术来提高性能,可优化应用程序的传输量和规模。 本文操作环…

    2025年3月11日
    200
  • apt怎么安装 nodejs

    apt安装nodejs的方法:1、打开终端窗口;2、通过“sudo apt-get update sudo apt-get install nodejs”命令进行安装即可。 本文操作环境:Ubuntu 12.10系统、nodejs v5.1…

    2025年3月11日
    200
  • javascript语言与操作环境有关吗

    javascript语言与操作环境无关。javascript依赖于浏览器本身,不依赖操作系统,在浏览器中就可以运行;因此一个JavaScript脚本在编写完成后可以在任意系统上运行,只需要系统上的浏览器支持JavaScript即可。 本教程…

    2025年3月11日
    200
  • nodejs中v8引擎是什么

    在nodejs中,V8引擎就是JavaScript运行的解释器,是一个JavaScript引擎;V8使用“C++”开发,并在谷歌浏览器中使用。在运行JavaScript之前,V8会将其编译成原生机器码,并且使用如内联缓存等方法来提高性能。 …

    2025年3月11日
    200
  • nodejs模板引擎是什么

    nodejs模板引擎是指渲染模板,可以使用模板文件来动态生成HTML文件,在生成时又可以按照一定的规则将应用程序里的数据整合进HTML文件。常见的node模板引擎有:Mustache、Dust.js、doT、Jade、EJS、swig等。 …

    2025年3月11日
    200
  • 使用nodejs的原因有哪些

    使用nodejs的原因:1、Node.js在服务端和客户端都是使用JavaScript,这意味着开发人员在各层上只需使用一门语言;2、node的开发效率非常高,并有能力构建复杂系统;3、可以非常好的解决了IO密集的问题;4、学习成本较低等。…

    2025年3月11日
    200
  • nodejs中跟时间相关的函数有哪些

    nodejs中的时间函数:1、moment();2、format();3、diff();4、startOf();5、endOf();6、add();7、subtract();8、dayjs();9、year();10、toDate()等等。…

    2025年3月11日
    200

发表回复

登录后才能评论