定義變數
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