Node.JS 和 JavaScript 之间有什么区别? 下面本篇文章就来给大家介绍一下 Node.JS 和 JavaScript 的区别, 希望对大家有所帮助.
Node.JS 是一个基于 Chrome V8 引擎的 JavaScript 运行环境, 是一个让 JavaScript 运行在服务端的开发平台.
Node.JS 可用于方便地搭建响应速度快, 易于扩展的网络应用. Node 使用事件驱动, 非阻塞 I/O 模型而得以轻量和高效, 非常适合在分布式设备上运行数据密集型的实时应用.
JavaScript 是一种高级的, 解释型, 直译式脚本语言, 是一种基于原型, 函数先行的语言, 是一门多范式的语言, 它支持面向对象编程, 命令式编程, 以及函数式编程.
JavaScript 是一种属于网络的脚本语言, 已经被广泛用于 web 应用开发, 常用来为网页添加各式各样的动态功能, 为用户提供更流畅美观的浏览效果.
Node.JS 和 JavaScript 的区别
扩展出来的功能不同
JavaScript 组成: ECMAScript(定义这门语言的基础, 比如语法, 数据类型, 结构以及一些内置对象等),DOM(基于 ECMASCRIPT, 扩展出来的用于操作页面元素的方法),BOM(基于 ECMASCRIPT, 扩展出来的用于操作浏览器的一些方法).
Node.JS 是以 ECMASCRIPT 为基础, 然后在这个基础上扩展出来的一些操作其他东西 (即操作非浏览器) 的一些方法, 比如操作 OS 操作系统, file 文件系统, net 网络, database 数据库等.
也就是说 Node.JS 和 JS 在底层都是一样的, 都是 Ecmascript, 但是扩展出来的功能却是不一样的. 一个是偏向于前端浏览器, 一个是偏向于后端.
顶层对象不同
在 Ecmascript 部分 node 和 JS 其实是一样的, 比如与数据类型的定义, 语法结构, 内置对象. 但在 JS 中的顶层对象是 Windows 对象, 但是在 node 中没有什么 Windows 对象, node 中的顶层对象是 global 对象. 这就是二者的差异性.
在 Windows 对象中, 定义一个全局变量是可以通过 Windows 来访问的, 但是在 node 中是不能通过 global 对象来访问的, 如:
- var a=100;
- console.log(global.a);
这种方式是输出结果为:
undefined
对于上面这个例子, 因为在 node 中定义的变量是模块中的对象, 而并不是 global 全局变量, 所以结果为 undefined.
来源: http://www.css88.com/qa/javascript/11998.html