JavaScript和Node.js的关系

JavaScript是一门编程语言(脚本语言),JavaScript以前是在浏览器里执行的,需要浏览器里的JavaScript引擎,Firefox有叫做Spidermonkey的引擎,Safari有JavaScriptCore的引擎,Chrome有V8的引擎,后来,有人把Chrome有V8的引擎拿出来做了包装,并加入了其它一些功能模块,就构成了Node.js。简单地说,Node.js是JavaScrip的一种独立于浏览器的运行环境,还集成其它功能如I/O、网络等功能,适用于服务器端应用。

浏览器端JavaScript和服务器端node.js关系(组成区别)

浏览器端也称为前端,服务器端也称为后端。前端和后端的JavaScript它们的语言基础都是ECMAScript,但是所扩展的东西不同:前端需要操作页面元素,于是扩展了DOM,也需要操作浏览器,于是就扩展了BOM。后端需要有操作文件的能力,于是扩展出file文件系统;需要操作网络,于是扩展出net网络系统等。

★web浏览器端JavaScript:

ECMAScript【注】

文档对象模型(DOM),描述处理网页内容的方法和接口。

浏览器对象模型(BOM),描述与浏览器进行交互的方法和接口。

★服务器端node.js:

ECMAScript

node.js基本模块:文件系统I/O、网络(HTTP、TCP、UDP、DNS、TLS/SSL等)、二进制数据流、加密算法、数据流等等,为此Node.js中集成了大量的库,还可以使用许多第三方库。

【注:指遵循 ECMAScript 标准规范JavaScript部分,ECMAScript 定义了JavaScript语言的基础部分,如:语法、数据类型结构以及一些内置对象。JavaScript一种通用目的的脚本语言,由具体的Javascript引擎具体实现。JavaScript引擎是一个专门处理JavaScript脚本的虚拟机。】

ECMAScript 是一种由 Ecma 国际组织在标准 ECMA-262 中定义的脚本语言规范。ECMA Script 1.0 于1997年6月发布。从此,JavaScript语言进入了标准化时代。ECMAScript 简称ES。

2009年12月发布ECMAScript 5.0。2011年6月发布ECMAscript 5.1,并且成为ISO国际标准(ISO/IEC16262:2011)。
2015年6月发布ECMAScript 6,并且更名为“ECMAScript 2015”。

ECMAScript版本历史更多情况可见https://zhuanlan.zhihu.com/p/367249029

习惯上,JavaScript一般指浏览器端的JavaScript。JavaScript包括3个部分:ECMAScript、BOM、DOM。BOM与浏览器相关,DOM和HTML页面相关。Node.js中只是包括了ECMAScript。一些关于BOM的操作和DOM的操作都是基于浏览器端运行的,在Node.js中是无法使用的。

☆为什么JavaScript可以在浏览器中被执行?

不同的浏览器使用不同的JavaScript解析器(引擎)。

☆为什么JavaScript可以操作Dom和Bom?

每个浏览器都内置了Dom,Bom的API【注:API(Application Programming Interface ——应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节】。

☆Node.js 能操作 DOM 和 BOM 吗?

不能。因为Node.js没有集成Dom,Bom的API。

☆Node.js可以做什么?

Node.js 作为一个 JavaScript 的运行环境,仅仅提供了JavaScript基础的功能,但集成了文件系统、网络等功能。基于Node.js 提供很多强大的工具,如:

Express 框架(http://www.expressjs.com.cn/),可以快速构建Web 应用。

Electron框架(https://www.electronjs.org/zh/),可以构建跨平台的桌面应用。

关于JavaScript更多情况,可见https://blog.csdn.net/cnds123/article/details/80864191

关于BOM和DOM更多情况,可见https://blog.csdn.net/cnds123/article/details/109635554

关于Node.js更多情况,可见https://blog.csdn.net/cnds123/article/details/104559497

关于前端、后端 更多情况,可见https://blog.csdn.net/cnds123/article/details/120778082

JavaScript和Node.js的关系相关推荐

  1. node.js htttp文件服务器 遇到目录时搜索目录内默认html页面 廖雪峰javascript教程node.js中http部分练习题

    廖雪峰javascript教程node.js中http部分最后的练习题: https://www.liaoxuefeng.com/wiki/1022910821149312/1023025830950 ...

  2. 90%的人都不知道的Node.js 依赖关系管理(上)

    转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 引言 Node.js中的一个重要概念是依赖关系管理.本文就将带大家了解依赖管理的各种模式以及Node.js如 ...

  3. 2019 某某最新《 Javascript之Node.JS经典教程 Node.js从理论到实战》

    适用人群  前端开发,前端工作,前端学习  课程概述  智能社:Javascript之Node.JS-经典教程:从理论到实战!  基础部分(第1-6节)  模块化(第7-8节)  框架应用(第9-24 ...

  4. 使用FortJs使用现代JavaScript开发Node.js

    介绍 (Introduction) Nodejs gives you the power to write server side code using JavaScript. In fact, it ...

  5. VSCode配置JavaScript基于Node.js环境

    1. 安装 Node.js 官网下载对应的版本:https://nodejs.org/en/ 可以自定义安装路径 测试是否安装成功,在命令行输入node -v 和 npm -v,如果能显示出版本号说明 ...

  6. VSCode配置JavaScript基于Node.js的调试环境

    一.安装VSCode和Node.js 前言:做科研之后确实很少会总结积累,可能是科研中出现的问题的解决方法比较多样灵活,别说了其实就是偷懒哈哈哈哈哈.这不又要做前端才又开始写博客记录环境配置了.行了不 ...

  7. Javascript+Ajax+Node JS +socket .io +mysql 实现在线私人聊天

    说明 学完Node JS 之后,一直想写一个关于Node的项目,正好了解到html5中的websocket, 所以花了一周时间写了这个在线聊天项目,程序还存在一些功能没有实现,后期会继续开发,实现离线 ...

  8. Node.js 与 JavaScript 基金会正式合并,JS 喜提新主场

    翘首以盼了 6 个月后,JavaScript 终于迎来了自己的"新家落户"--OpenJS 基金会于今日官宣! 图源:Node.js Foundation 如何挑战百万年薪的人工智 ...

  9. 关于node.js的误会

    昨天写了篇博客,介绍了一下我对node.js的第一次亲密接触后的感受,以为node.js很小众,出乎我意料很多人感兴趣,并且对博客中的细节问题做了评论,最多的是围绕node.js的异步与单线程展开的, ...

最新文章

  1. 一种电磁铁磁场分析测量
  2. Java服务器热部署的实现原理
  3. [知识图谱]利用py2neo从Neo4j数据库获取数据
  4. SQL_MODE设置
  5. 练习5 键盘输入一个年份 判断年份 是否为闰年
  6. 使用vue-router懒加载解决首次加载时资源过多导致的速度缓慢问题
  7. MySQL多实例实现半同步复制
  8. tensorboard的可视化及模型可视化
  9. NodeJS学习笔记—1.CommonJS规范
  10. hadoop windows
  11. 20160512关于mac安装caffe的记录
  12. 快速提高看盘能力的十大方法
  13. 【jQuery学习】—jQuery操作CSS和表格
  14. dbf文件转excel_Excel批量转PDF,关键一步不能忘
  15. js获取歌曲时长_小白的js——html播放器(3)
  16. 四级网络工程师笔记-计算机网络(中)
  17. DDOS攻击是什么意思?日本奥运官网遭逾4亿次网络攻击
  18. struts2框架深入
  19. Java-汉字字符串转拼音,包括首字母和全拼
  20. flink 任务提交问题汇总

热门文章

  1. Matlab:将日期时间转换为儒略日期或 POSIX 时间
  2. 第11章 The Extended Kalman Filter
  3. oracle 中 in函数
  4. 自制文件传输助手,实现数据安全备忘与跨平台传输(优化)
  5. 五脏有问题,该怎么调理?
  6. VB.net小技巧——ReoGrid控件添加到工具箱说明
  7. 淘宝、京东、苏宁、拼多多、1688各大电商API接口详情( API 返回值说明,数据分析)
  8. [整理]几个好的嵌入式linux学习网站和博客
  9. razer鼠标测试软件,那伽梵蛇2014版鼠标驱动及测试_雷蛇鼠标_键鼠评测-中关村在线...
  10. Matlab中创建和使用表