node.js基础

一.node和JavaScript的异同

相同点:
1.ECMAScript 
2.语法
3.内置对象,方法

不同点:
JS中的顶层对象:window
node顶层对象:global
// 一个文件就是一个模块
// 每个模块都有自己的作用域
// 使用var来申明的一个变量,他并不是全局的,而是属于当前模块下的
var a = 100
console.log(a) // 100
global.a = 200
console.log(global.a) // 200
// __filename:当前文件被解析后的绝对路径
console.log(__filename) // /Users/lixin/node/2.js

二.模块加载机制

1.路径
// 绝对路径
// require('/Users/lixin/node/hello.js')
// 相对路径
// require('./hello.js')
// 加载node中的核心模块,或者node_modules模块
// require('hello.js')

2.模块查找机制
// 1.首先按照加载的模块的文件名称进行查找
// 2.如果没有找到,则会在模块的名称后面加上.js的后缀进行查找
// 3.若果还没有查找到,则会在文件名称后加上.json的后缀,进行查找
// 4.若果还没有,则会在文件名称后加上.node的后缀,进行查找
// 文件名称 -> .js -> .json -> .node
// require('./hello')

// 当引入文件为包名称时,首先会先查找包下面index.js入口文件
let { creat } = require('./cat')

三.模块

1.module对象
![这里写图片描述](https://img-blog.csdn.net/20180422101005210?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYTRfOTUyNw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
2.moduleexports相关概念

// module: 保存提供和当前模块的相关的一些信息
// 在这个module对象,有一个子对象:exports对象
// 我们可以通过这个对象把一个某爱中的局部变量对象进行提供访问
var a = 10
module.exports.a = a
// 在模块作用域,还有一个内置的模块对象,export,它其实就是module.exports
console.log(module.exports === exports) // true
// exportsmodule.exports的指向关系问题

module.exports = [1, 2, 3]
exports.a = 200 // 当加载这个模块时,输出[1, 2, 3],而module.exportsexports并不相等
console.log(module.exports === exports) // false

四.相关API

1.__filename和__dirname
// __filename:返回当前模块文件解析后的绝对路径,该属性其实并非全局的,而是模块作用域下的
// __dirname: 返回当前模块文件所在目录解析后的绝对路径,该属性并不是全局的,而是模块作用域下的Á
console.log(__filename) // /Users/lixin/node/2.js
console.log(__dirname) // /Users/lixin/node
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值