※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裡的字一樣,就可以觸發事件
※其他事件都差不多,請參考官網
沒有留言:
張貼留言