node环境与浏览器环境的区别是什么

区别:1、node中this指向global,而浏览器中指向window;2、Node用CommonJS标准,而浏览器用ES Modules标准;3、浏览器中的js可以操作DOM,而node中不会;4、I/O读写操作不同;5、模块加载不同。

node环境与浏览器环境的区别是什么

本教程操作环境:windows7系统、nodejs 12.19.0版,DELL G3电脑。

node环境与浏览器环境的区别    

1、全局环境下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。

2、模块标准

Node.js 使用 CommonJS 模块系统,而在浏览器中我们开始看到正在实施的 ES Modules 标准。

在实践中,这意味着你暂时在 Node.js 中使用 require(),在浏览器中使用 import。

3、DOM操作

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

4、I/O读写

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

5、模块加载

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

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

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

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

更多node相关知识,请访问:nodejs 教程!

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

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

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

(0)
上一篇 2025年3月7日 04:14:29
下一篇 2025年2月25日 02:48:51

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

相关推荐

  • node的顶层对象是什么

    node的顶层对象是global对象。global对象是node的全局对象,该对象及其所有属性都可以在程序的任何地方访问;global对象最根本的作用是作为全局变量的宿主。 本教程操作环境:windows7系统、nodejs 12.19.0…

    2025年3月7日 编程技术
    200
  • node中fs是内置模块吗

    在node中,fs是内置模块,是指文件系统模块,用于读写文件;fs模块提供了用于满足用户对文件操作需求的方法和属性,包括文件目录的创建、删除、查询以及文件内容的读取和写入等,并且同时提供了异步和同步的方法。 本教程操作环境:windows1…

    2025年3月7日
    200
  • 安装node时会自动安装npm吗

    安装node时会自动安装npm;npm是nodejs平台默认的包管理工具,新版本的nodejs已经集成了npm,所以npm会随同nodejs一起安装,安装完成后可以利用“npm -v”命令查看是否安装成功。 本教程操作环境:windows1…

    2025年3月7日
    200
  • 什么是流(Stream)?如何理解Nodejs中的流

    什么是流?如何理解流?下面本篇文章就来带大家深入了解一下node中的流(stream),希望对大家有所帮助! 作者最近在开发中经常使用 pipe 函数,只知道这是流的管道,却不知道他是如何工作的,所以抱着一探究竟的心理干脆就从流开始学起,随…

    2025年3月7日 编程技术
    200
  • 深入聊聊node.js中的EventEmitter

    本篇文章带大家了解一下node中的eventemitter,简单聊聊一下异步操作、error事件、eventemitter类,希望对大家有所帮助! events(事件触发器) events是nodejs内置的事件触发器,在node的内置模块…

    2025年3月7日
    200
  • 深入浅析Node.js中常见的内置模块

    本篇文章带大家了解一下nodejs中常见的内置模块(路径、文件系统、events),希望对大家有所帮助! 内置模块path 路径的演练 path模块用于对路径和文件进行处理,提供了很多好用的方法 并且我们知道在Mac OS、Linux和wi…

    2025年3月7日 编程技术
    200
  • 浅析Node.js中的Buffer,聊聊事件循环

    本篇文章带大家了解一下node中的buffer,并聊聊浏览器的事件循环,希望对大家有所帮助! Buffer 的使用 数据的二进制 计算机中所有的内容:文字、数字、图片、音频、视频最终都会使用二进制来表示 JS可以直接去处理非常直观的数据:比…

    2025年3月7日 编程技术
    200
  • 什么是异步资源?浅析Node实现异步资源上下文共享的方法

    node.js 如何实现异步资源上下文共享?下面本篇文章给大家介绍一下node实现异步资源上下文共享的方法,聊聊异步资源上下文共享对我们来说有什么用,希望对大家有所帮助! 异步资源上下文共享,意味在一次网络请求生命周期或异步资源调用链中共享…

    2025年3月7日
    200
  • node实战之开发一个mycli命令行工具

    本篇文章手把手带大家了解一个node实战,聊聊怎么基于node制作一个mycli命令行工具/脚手架,希望对大家有所帮助! 初始化 首先要确保电脑上有node.js的环境 命令行执行下面代码,初始化一个package.json文件 npm i…

    2025年3月7日 编程技术
    200
  • 详解如何使用Node.js开发一个简单图片爬取功能

    如何使用node进行爬取?下面本篇文章带大家聊聊使用node.js开发一个简单图片爬取功能,希望对大家有所帮助! 爬虫的主要目的是收集互联网上公开的一些特定数据。利用这些数据我们可以能进行分析一些趋势对比,或者训练模型做深度学习等等。本期我…

    2025年3月7日 编程技术
    200

发表回复

登录后才能评论