Node.js 入門教程

Node.js開發指南

官方文檔

CNodeJS

Node.js源代碼下載地址

github官方下載

 git clone https://github.com/joyent/node.git
 cd node/
 ./configure
 make
 make install
 make test
 make doc

 curl http://npmjs.org/install.sh | sh 

 npm install -g n

 npm install -g supervisor

 npm install -g node-inspector
 node --debug-brk=5858 debug.js
 node-inspector

Node.js不適合做的事情

計算密集型的程序

如果有計算密集型程序,給用戶一個提示,說服務器正在處理

單用戶多任務型應用

Node.js進程之間的通信很不便

邏輯十分複雜的事務

Node.js適合處理邏輯簡單但是訪問頻繁的任務

Unicode與國際化

Node.js不支持完整的Unicode,很多字符無法用string來表示.

只能把所有字符當作二進制的buffer數據來處理

作用域

if(true){
    var somevar='value';
}
console.log(somevar);//輸出 value,因爲if,for 語句中的花括號不是獨立的作用域
作用域從裏到外
var v1='v1';
var f1=function(){
    console.log(v1);// 輸出v1
};
f1();

var f2=function(){
    var v1='local';
    console.log(v1);// 輸出 v2
}
f2();

var scope='global';

var f=function(){
    console.log(scope);// 輸出undefined
    var scope='f';//屏蔽上層scope的定義
}
var f=function(){
    var scope='f0';
    (function(){
        var scope='f1';
        (function(){
            console.log(scope);//輸出f1
        })();
    })();
};
f();
var scope='top';

var f1=function(){
    console.log(scope);
};
f1();//輸出top

var f2=function(){
    var scope='f2';
    f1();
}
f2();//輸出top
JavaScript的作用域是靜態作用域,是在定義時決定的,不是在調用時決定的。

閉包

var generateClosure=function(){
    var count=0;
    var get=function(){
        count++;
        return count;
    };
    return get;
};
var counter=generateClosure();
console.log(counter());//輸出1
console.log(counter());//輸出2
console.log(counter());//輸出3

閉包作用實現嵌套的回調函數

實現私有成員

引號建議用單引號,因爲JSON,XML都規定必須使用雙引號,這樣便於無轉義地直接引用。

等號建議使用===

var num=9;
var literal='9'
if(num===literal){
    console.log("ok")
}





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章