常规解析JavaScript:JavaScript文件引入html文件中,浏览器解析,可在控制台打印查看
因为node是直接将V8引擎拿出来解析JavaScript,所以不需要浏览器
例子1:
1.找到当前文件所在目录
2.输入 node 文件名全称
就可以解析JavaScript文件了:
例子2:
直接输入node 文件路径\文件名
例子3:
在文件所在目录按下shift+鼠标右键
进入命令窗口
输入 node 文件名
注意:window作为浏览器的最大宿主对象,而node 是直接用V8引擎直接解析的,所以没有window对象。
可以用global对象来代替window对象
global.a = 10 相当于 var a = 10
console.assert(判断,“提示文字”)
判断a的值是否还为0,
值未改变时
a的值改变了
计算代码运行时间:
路径:
什么是模块化
在Node中,每个js文件都独立运行在一个闭包中,不是全局的作用域,模块与模块无法互相访问。
目的是:全局变量私有化,避免全局污染,方便管理和维护
可以将一个js文件作为一个模块,然后用exports对象进行导出
因为exports是个对象,所以可以通过打点添加属性或方法,然后赋值导出
1.exports全局的对象
exports
使用.
语法来向外暴露内部变量 exports.xxx = xxx;
2. module.exports
module.exports既可以通过.语法,也可以直接赋值一个对象
module.exports
和exports
所指向的内存地址相同module.exports
以{}
整体导出时会覆盖exports
的属性和方法module.exports
和exports通过打点的方式进行添加属性或方法相同时,后面赋值会覆盖前面
exports
和module.exports
同时赋值时,exports
所使用的属性和方法必须出现在module.exports
,若属性没有在module.exports
中定义的话,出现undefined
require:全局函数,用来导入模块的
写法:
var abc = require(‘文件路径/文件名‘) //全局方法,主要用来导入模块
此时的 abc 为导入的对象。可以通过打点的方式进行
注意路径写法:
“./” 代表当前路径 ,同一文件夹下引入,必须加
“/” 盘符根路径
例子:
在node中,有许多内置模块,需要通过require()引入
使用文件系统,先引入文件系统的模块
fs模块可以对文件读写
例子
const fs = require("fs"); //fs是内置模块
fs将调用方法来读写文件
fs.readFile(path[, options], callback) //异步读文件
path:文件路径(必需)
option:编码符(可选),当不选时,将以Buffer对象输出
可以用data.toString()方法转为文件内容的原始值
callback:回调函数
err:错误
data:文件的内容
throw:抛出错误,代码不会向下执行
const fs = require(‘fs‘); fs.readFile(‘./01.html‘,‘utf8‘,(err,data) =>{ console.log(data) //当发生错误时,还是会执行到这一行, 输出undefined
//没有错误时,输出文件内容
})
当发生错误时,用throw 抛出错误,阻止代码继续向下执行
fs.readFileSync(path[, options]) //同步读文件
const fs = require(‘fs‘); fs.readFile(‘./01.html‘,‘utf8‘,(err,data) =>{ if (err) { throw err } console.log(data) }) console.log(123) //用于判断同步异步
当123在文件内容之前输出,则是异步,反之为同步
fs.access(‘path‘,callback) :判断文件或文件夹是否存在
const fs = require(‘fs‘); //导入fs模块 fs.access("./01.js",(err) =>{ if(err) throw err //如果有错误,抛出错误,停止执行下面代码 console.log("holly ") //没有错误,则输出 })
原文:https://www.cnblogs.com/wxyblog/p/11295702.html