Node.js API學習筆記(一)

Terminal(終端)

 

    說起這個使用過linux系統的兄臺一般都會知道的,本人理解:類似Putty這些ssh工具通過 軟件來實現遠程控制主機,對於我們使用者來說,它會顯示信息並能接收信息並處理,這個東東就是終端。至於什麼偽終端應該就是用軟件實現使一套輸入輸出設備 可以支持多個軟終端。

 

    這裡說下node.js中有關的終端模塊3個,分別是:STDIO、TTY、REPL。

 

一、STDIO

     如果我沒理解錯控制臺應該是屬於noddjs標準的輸入輸出,一般把信息輸出到stdout或者是stderr。

 

二、TTY

    這個tty好像就跟偽終端解析一樣,現在還不明白,不過不是很主要聽講說是準備放棄。

 

三、REPL

    這是一個交互式解釋器,至於什麼是交互性這不解釋瞭。這個REPL為node運行的狀態以及信息提供一種交互方式。比如我們在windows下命令行輸入:

 

1

    node<br>    >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);

發佈留言