定义变数
Node.js 定义变数
变数 | 说明 |
---|---|
typeof | 变数类型 |
instanceof | 类别类型 |
constructor | 建构值 |
console.log(typeof undefined) // undefind
console.log(typeof null) // object
console.log(typeof true) // boolean
console.log(typeof 43) // number
console.log(typeof '21') // string
console.log(typeof {a:1}) // object
console.log(typeof [1]) // object
console.log(typeof Symbol()) // symbol
console.log(typeof 123n) // bigint
function a() {}
console.log(typeof a) // function
var date = new Date()
var error = new Error()
console.log(typeof date) // object(这种被new出来的型态为ojbect)
console.log(typeof error) // object(这种被ne出来的型态为ojbect)
判断A是否为B的实例,如果 A 为 B 的实例则true。如果否则返回false
console.log(12 instanceof Number) // false
console.log('22' instanceof String) // false
console.log(true instanceof Boolean) // false
console.log(null instanceof Object) // false
console.log(undefined instanceof Object) // false
console.log([] instanceof Array) // true
console.log({a: 1} instanceof Object) // true
console.log(json instanceof Object) // true
function a() {}
console.log(a instanceof Function) // true
console.log(new Date() instanceof Date) //true
console.log(reg instanceof RegExp) //true
console.log(error instanceof Error) // true
console.log('22'.constructor === String) // true
console.log(true.constructor === Boolean) // true
console.log([].constructor === Array) // true
console.log(document.constructor === HTMLDocument) // true
console.log(window.constructor === Window) // true
console.log(new Number(22).constructor === Number) // true
console.log(new Function().constructor === Function) // true
console.log((new Date()).constructor === Date) // true
console.log(new RegExp().constructor === RegExp) // true
console.log(new Error().constructor === Error) // true
类似浏览器 JavaScript 的 window
变数,但是在 Node.js 使用的是 global
变数
// test.js
console.log(global)
<ref *1> Object [global] {
global: [Circular *1],
clearInterval: [Function: clearInterval],
clearTimeout: [Function: clearTimeout],
setInterval: [Function: setInterval],
setTimeout: [Function: setTimeout] {
[Symbol(nodejs.util.promisify.custom)]: [Getter]
},
queueMicrotask: [Function: queueMicrotask],
performance: Performance {
nodeTiming: PerformanceNodeTiming {
name: 'node',
entryType: 'node',
startTime: 0,
duration: 66.41221900098026,
nodeStart: 5.158950999379158,
v8Start: 6.645998999476433,
bootstrapComplete: 44.11822099983692,
environment: 27.58743800036609,
loopStart: -1,
loopExit: -1,
idleTime: 0
},
timeOrigin: 1648638204321.951
},
clearImmediate: [Function: clearImmediate],
setImmediate: [Function: setImmediate] {
[Symbol(nodejs.util.promisify.custom)]: [Getter]
}
}
非必要儘量少用,壁面变数被汙染,毕竟全部的程式都可以存取修改全域变数
global.uuid = require('uuid');
console.log(global.uuid);
const os = require('os');
console.log(os.type());
console.log(os.version());
console.log(os.homedir());
// Darwin
// Darwin Kernel Version 21.1.0: Wed Oct 13 17:33:23 PDT 2021; root:xnu-8019.41.5~1/RELEASE_X86_64
// /Users/kj
变数 | 说明 |
---|---|
os.type() | 类型 |
os.version() | 版本 |
os.homedir() | 目录 |
const path = require('path');
// /Users/kj/Code/node.js/test.js
console.log(__filename);
// /Users/kj/Code/node.js
console.log(path.dirname(__filename));
// test.js
console.log(path.basename(__filename));
// .js
console.log(path.extname(__filename));
// {
// root: '/',
// dir: '/Users/kj/Code/nodejs',
// base: 'test.js',
// ext: '.js',
// name: 'test'
// }
console.log(path.parse(__filename));
console.log(path.join(__dirname, 'files', 'test.json'));
变数 | 说明 |
---|---|
path.dirname() | 目录名称 |
path.basename() | 档案名称 |
path.extname() | 副档名 |
path.parse() | 解析路径 |
path.join() | 根据作业系统合併产生档案路径,产生不同的 / 或 \ 的路径 |
// /Users/kj/Code/nodejs-leetcode
console.log(__dirname);
// /Users/kj/Code/nodejs/test.js
console.log(__filename);
变数 | 说明 |
---|---|
__dirname | 档案放置目录路径 |
__filename | 档案放置路径,含档名 |
console.log(process);
变数 | 说明 |
---|---|
process.env | 环境变数 |
process.cwd | 目前目录 |
process.version | 目前 Node.js 版本 |
process.memoryUsage() | 记忆体使用状况 |
process.exit() | 结束程式 |
process.uptime() | 程式执行时间 |
// {
// rss: 22528000,
// heapTotal: 4882432,
// heapUsed: 3964376,
// external: 224473,
// arrayBuffers: 11158
// }
// 一开始使用的记忆体
console.log(process.memoryUsage());
// 建立一个很佔空间的变数
var a = new Array(1e7);
// {
// rss: 103391232,
// heapTotal: 85159936,
// heapUsed: 84305032,
// external: 286011,
// arrayBuffers: 11158
// }
// 目前使用的记忆体
console.log(process.memoryUsage());
a = null; // 把 a 变成 null
// {
// rss: 103403520,
// heapTotal: 85159936,
// heapUsed: 84310528,
// external: 286011,
// arrayBuffers: 11158
// }
console.log(process.memoryUsage()); // 后来使用的记忆体
Node.js 定义变数
Node.js Number 数字
Node.js String 字串
Node.js Array 阵列
Node.js Function 函式
Node.js 内建函式
Node.js Math 数学运算
Node.js Object 物件
Node.js Class 类别
Node.js Closure 闭包
Node.js Map
Node.js Set
Node.js this