js和node.js的异同点
js的组成: Ecmascript DOM BOMnode.js: 以Ecmascript 为基础扩展出操作非浏览器的方法,比如os,file,net,database等。
都是以Ecmascript为基础,js扩展的方法是操作浏览器,node.js操作的是系统,网络,数据库。
JS浏览器有内置的解析器解析,执行node.js文件需要到node.js官网下载解析器
在JS中的顶层对象: window 在node.js的顶层对象: global (node中也没有window)
模块的使用
一个文件就是一个模块,每个模块都有自己的作用域我们使用var定义的一个变量,并不是全局的 ,而是属于当前模块下
模块加载机制
require ("模块路径"); 路径可以是相对路径,也可以是绝对路径
如果是require(“2.js") 是加载node中的核心模块,或者是node_modules
文件查找,首先按照文件名称进行查找 ,如果没有找到,会按如下顺序自动加上后缀进行查找
名称 ->.js -> .json-> .node
在一个模块中通过var定义的变量,其作用域范围是当前模块,外部不能直接使用
如果想一个模块访问另一个模块定义的变量,可以用如下的方法:
1.把变量作为global的属性,但是这样的方法不推荐
2.使用模块对象module, module( 提供和当前模块有关的一些信息),module对象有一个子对象exports
通过这个exports对象把模块中的局部变量对象进行提供访问
例 建一个5.js文件
在4.js文件中引入,结果如下