※Process
可以取得此程序的資訊官網連結
※argv
for(var i in process.argv) {
console.log(process.argv[i]);
}
console.info('\r\n');
process.argv.forEach((val, index, array) => {
console.log(`${index}: ${val}`);
// console.log(`${array}`);
});
※官網用的是lambda寫法,我用的是一般寫法,都可以,變數用左上角的ESC鍵下面的那個1,用2個包起來,然後用「${}」可以取得,而用「'」和「"」是不行的
※變數array太長了,裡面就是陣列,用「,」隔開
※cwd、chdir
console.log(`Starting directory: ${process.cwd()}`);try {
process.chdir('D:\\');
// process.chdir('/tmp');
console.log(`New directory: ${process.cwd()}`);
}
catch (err) {
console.log(`chdir: ${err}`);
}
※cwd是目前路徑,chdir是改變路徑,我用的是Windows,所以tmp註解打開會抓不到,就會跑catch的程式碼
※arch、env、memoryUsage、platform
console.log('This processor architecture is ' + process.arch);
// console.log(process.env);
console.log(process.env.USERDOMAIN);
console.log(process.memoryUsage());
console.log(`${process.platform}`);
※arch是位元
※process.env裡面有很多,其中有一個USERDOMAIN是其中一個,所以我才可以拿來用
※memoryUsage看記憶體的使用heapTotal和heapUsed是V8用的情況
※Utilities
就是一些公用的方法官網連結
※isXxx、log
isXxx都是判斷用的,也就是回傳值是true/false,用法都差不多,官網的範例也夠清楚了,就寫一個意思意思一下const util = require('util');
console.log(util.isArray([]));
console.log(util.isArray(new Array));
console.log(util.isArray({}));
util.log('xxx');
※util.log可以印出現在時間,裡面的xxx可打可不打,只是黏在後面的字串而已
※debuglog
debuglog是偵測環境變數用的,有才會執行程式碼,否則什麼都不會發生var debuglog = require('util').debuglog('xxx');
var root = 123;
debuglog('hello from foo [%d]', root);
※執行之前要設環境變數,只要xxx有對應到,就會執行
※inherits
左邊繼承右邊,繼承後會多一個叫「super_」的東西,代表右邊的爸爸function Dad(){}
Dad.prototype.write = function() {
console.log('prototype');
}
const util = require('util');
var son = function(){}
util.inherits(son, Dad);
new Dad().write();
new son().write();
※繼承後可以使用爸爸的write方法了
※官網的範例,不懂Events的人看不太懂,所以我寫了這個,然後下面的Events看一下就很容易懂了
※另外javascript宣告變數有三種:var、const、let
var:全域變數,不寫var也是
const:只讀的變數,和java有一點不一樣,java一開始給null,但一給值後就不能改了,這裡的const更嚴格,就算是一開始給null或undefined都不能改
let:區域裡的區域變數
※我用IE11試的結果,const和let都不支援,和ECMA script的版本有關,我記得應該是要在第四版才有支援,但我測IE11的javascript版本是1.3,對應到ECMA script,是1或2版,所以沒有支援
假設最外層有一個全域變數a,if裡面宣告a=1或var a=1,都會改到全域變數,宣告成let就不會改到了
宣告let必需要在最上最寫一行「"use strict";」或者執行時加「--use_strict」,
如node --use_strict xxx.js
※Events
事件官網連結
const events = require('events');
var event = events.EventEmitter;
var e = new event();
/*
e.on('xxx', function() {
count++;
console.log('trigger' + count);
});
*/
e.on('xxx', () => {
count++;
console.log('trigger' + count);
});
e.emit('xxx');
e.emit('xxx');
※註解的部分是一般的寫法,現在官方都是用lambda的寫法了
※emit要和on裡的字一樣,就可以觸發事件
※其他事件都差不多,請參考官網





沒有留言:
張貼留言