1. 程式人生 > 其它 >Node.js中的全域性物件和全域性函式

Node.js中的全域性物件和全域性函式

Node.js —— 全域性物件與全域性函式

一、global 物件

在Node.js下,指令碼檔案不是在全域性作用域下,防止了全域性汙染;在瀏覽器中,全域性window,指令碼檔案是在全域性作用域下,存在全域性汙染。

二、console 物件

console.log() // 列印日誌
console.info() // 列印資訊
console.warn() // 列印警告
console.error() // 列印錯誤

/*
console.time()  console.timeEnd()
聯絡:檢視for,while,do-while,分別迴圈100000次的耗時
注意:開始計時和結束計時裡面的引數要保持一致
*/
console.time('for');
for (var i = 0; i < 100000; i++) {};
console.timeEnd('for');
console.time('do_while');
var m = 0;
do {
    m++;
} while (m < 100000);
console.timeEnd('do_while');
console.time('while');
var n = 0;
while (n < 100000) {
    n++;
};
console.timeEnd('while');

三、process 物件

process.arch // 檢視當前CPU的架構
process.platform // 檢視當前作業系統的版本
process.version // 檢視當前Node.js的版本號
process.pid // 檢視當前Node.js程序的編號
process.kill(編號) // 結束指定編號的程序

四、Buffer 物件

buffer是記憶體中的區域,用於臨時儲存資料,buffer中一個漢字佔3個位元組。
Buffer.alloc(5, 'abcde') // 建立buffer物件並存儲資料
String(buf) / buf.toString() // 將buffer轉為字串

/* 1. 建立buffer,儲存資料 */
let buf = Buffer.alloc(5, 'abcde');
console.log(buf);  // <Buffer 61 62 63 64 65>  顯示的十六進位制UTF-8編碼
/* 2. 將buffer資料轉為字串 */
// console.log(String(buf));
let buf = Buffer.alloc(9, '讓哥666');  // 注意漢字佔用3個位元組
console.log(buf.toString());

五、定時器函式

1. 一次性定時器

開啟:let timer = setTimeout(回撥函式, 間隔時間);
清除:clearTimeout(timer);

2. 週期性定時器

開啟:let timer = setInterval(回撥函式, 間隔時間);
清除:clearInterval(timer);

/* 定時器任務屬於非同步任務,會在主程式執行完之後再執行,兩個定時器函式均先執行下面的程式碼,清除後會立馬失效並且先列印'然哥攤了一個煎餅' */

// 1. 開啟一次性定時器
let timer = setTimeout(function(){
	console.log('boom');
}, 3000);
// 清除
clearTimeout(timer);
console.log('然哥攤了一個煎餅');

// 2. 開啟週期性定時器
let timer = setInterval(() => {
	console.log('boom');
}, 1000);
// 清除
clearInterval(timer);
console.log('然哥攤了一個煎餅');