標籤:blog http io ar os 使用 sp 檔案 div
此文章已經發表於本人部落格。
Terminal(終端)
說起這個使用過linux系統的兄台一般都會知道的,本人理解:類似Putty這些ssh工具通過 軟體來實現遠端控制主機,對於我們使用者來說,它會顯示資訊並能接收資訊並處理,這個東東就是終端。至於什麼偽終端應該就是用軟體實現使一套輸入輸出裝置 可以支援多個軟終端。
這裡說下node.js中有關的終端模組3個,分別是:STDIO、TTY、REPL。
一、STDIO
如果我沒理解錯控制台應該是屬於noddjs標準的輸入輸出,一般把資訊輸出到stdout或者是stderr。
二、TTY
這個tty好像就跟偽終端解析一樣,現在還不明白,不過不是很主要聽講說是準備放棄。
三、REPL
這是一個互動式解譯器,至於什麼是互動性這不解釋了。這個REPL為node啟動並執行狀態以及資訊提供一種互動方式。比如我們在windows下命令列輸入:
node
>consolg(‘hello world!‘);
這樣就會列印出hello world字元。
四、利用控制台
上面使用console.log();語句列印資訊,那麼我們可以使用這個查看很多資訊,比如變數的值、堆棧的資訊以及斷言。
console.log([data],[...]):第一個參數是字串,可以帶上像C語言一樣的預留位置,後面可選,本人網上查看了一些資料,預留位置支援%s(字串),%d(數字),%j(json)。例子如下:
//不帶預留位置以及參數,輸出:hello world console.log(‘hello world‘); //帶上預留位置,不過不帶參數。輸出:hello console.log(‘hello %s‘); //帶上預留位置以及參數。輸出:hello world console.log(‘hello %s‘, ‘world‘); //輸出:age is 30 console.log(‘age is %d‘,30); //輸出:json data:{‘age‘:30} console.log(‘json data:%j‘,{age:30}); //輸出:{age:30} console.log({age:30}); //時間標記,標識lable開始 console.time(‘lable‘); //時間標記,標識lable結束。輸出lable : 100ms(可以計算中間的處理時間) console.timeEnd(‘lable‘); //列印當前堆棧lable的資訊。輸出Trace : lable ---------------------- console.trace(‘lable‘); //斷言文法:console.assert(expression,[message]) //輸出AssertionError : 異常咯 console.assert(false,‘異常咯‘);
五、Buffer
這個Buffer的出現基本上說就是為瞭解決js本身對於二進位不友好的局面。大家都知道nodejs的存在依賴網路,對不同資源的請求以及響應甚至是檔案都是用二進位出裡的,使用inodejs專門提供這個機制來處理位元組流。
目前本人收集了Buffer支援的編碼有:‘ascii‘:這個速度快;‘utf8‘:支援Unicode字元;‘base64‘:base64字串編碼; ‘utf16le‘、‘ucs2‘、 ‘hex‘。
建立Buffer執行個體,目前知道的是有4種;
//第一種指定大小,這個大小是固定的不會因為write的寫入而改變 var buf = new Buffer(8); buf.write(‘luoliang‘); console.log(buf); //第二種:數組初始化。輸出:<Buffer 01 03 fe ff 00>。可以看出是求256的餘數,而且不是四捨五入完全是取整 var buf1 = new Buffer([1.2,3.7,254,255,256]); console.log(buf1); //第三種:字串初始化並帶編碼,預設utf8 var buf2 = new Buffer(‘中國人‘); //輸出:中國人 console.log(buf2.toString()); //下面將會輸出亂碼 buf2 = new Buffer(‘中國人‘,‘ascii‘); console.log(buf2.toString()); //下面將會輸出: 9 e4b8ade59bbde4baba var buf3 = new Buffer(‘中國人‘); console.log(buf3.length); console.log(buf3.toString(‘hex‘)); //上面的不同編碼對象的length是不同的,這個需要特別注意以下可以自己實驗下 //還有一個建立Buffer對象的slice,不過這個我基本沒用過,表示截取字串建立buffer var buf4 = new Buffer(‘中國人‘); var buf5 = buf4.slice(); //輸出:中國人 console.log(buf5.toString()); //輸出:國 buf5 = buf4.slice(3,6);
這次的筆記先到這裡,接下來繼續!
Node.js API學習筆記(一)