這學期修了Javascript,必須承認沒有很認真修XD,不過還是學到一些有趣的東西,先來記錄一下
Nodejs
這到底是啥?這個東西可厲害喏,在以前小時候學到的Javascript都是在client執行的,由瀏覽器來做直譯,那server端呢?通常server會用另外一種語言來寫ex:PHP,Python,Ruby之類的,這些語言都非常的好寫,要另外去學他們老實說也不會花很多時間,不過缺點是如果前後端都要維護,那麼在早上沒睡醒,或是剛睡完午覺的腦袋沒有很清楚的狀況下,常常需要切換多種語法老實說有點給他小累!於是Nodejs就發明出來了,讓server端也可以寫javascript,超屌的,而且還有npm(node package manager)可以使用!npm是啥?用過linux都知道有apt-get或yum,npm就是nodejs的apt-get或yum!
當然,學Nodejs當然要會一些Javascript的語法,不過這翻一翻書或google一下就可以學會了,在這裡要記錄一些不太一樣的部分,首先從npm下手
npm -v #show npm version npm list # show all package in current dir npm install module_name # install module_name in current dir npm install -g module_name #install module_name in sys dir npm update module_name # update module_name
實際執行的情就踹踹看就好惹,不過npm install module_name這個指令非常常用到,通常的習慣是把module安裝在同一份project中,這樣比較好維護,而且可以針對不同的project安裝不同的module版本!安裝在同一個目錄下還有一個大優點那就是整份project可以無痛移植,不用在其他電腦另外配置環境,所以啦!儘量使用npm install module_name而少用npm install -g module_name!
另外附上一些Nodejs的教學:
How to create object and declare class:
老實說從開學到現在完全沒有搞懂怎麼在javascript宣告class以及create object,通常都是一個dom物件使用到底,不過物件有物件的好處,雖然不用物件一樣可以維護程式,不過既然javascript有提供物件,那麼不用白不用,來了解一下如何使用,才不會造成只會寫code不會看code的情況發生,也就是俗語說的"書到用時方恨少"啊!
1. 使用function來declare class
function Apple (type) { this.type = type; this.color = "red"; this.getInfo = getAppleInfo; } // anti-pattern! keep reading... function getAppleInfo() { return this.color + ' ' + this.type + ' apple'; }
然後使用方式如下
var apple = new Apple('macintosh'); apple.color = "reddish"; alert(apple.getInfo());
上面的宣告方式也可以將method寫在裡面
function Apple (type) { this.type = type; this.color = "red"; this.getInfo = function() { return this.color + ' ' + this.type + ' apple'; }; }
2. mtehod用prototype加入
上面declare的方式有個優點,很好看懂,一整個就像python在declare class一樣,不過有個大缺點,那就是每次在create object時,都會recreate一次method,這對於效能來說不是件好事,所以採用prototype來設定object的method
function Apple (type) { this.type = type; this.color = "red"; } Apple.prototype.getInfo = function() { return this.color + ' ' + this.type + ' apple'; };
3. 使用括弧
這個部分比較特別一點,如果懂一點design pattern的應該都有聽過singleton,用括弧來宣告class的方式就是javascript的singleton。在了解括弧的宣告精神前需要了解一下javascript的語法先。
在javascript中大括號代表宣告一個object
var o = {};
等價於以下的宣告
var o = new Object();
中括弧代表Array
var a = [];
也可以寫成
var a = new Array();
最後就要回到singleton的宣告方式
var apple = { type: "macintosh", color: "red", getInfo: function () { return this.color + ' ' + this.type + ' apple'; } }
使用方式
apple.color = "reddish"; alert(apple.getInfo());
參考資料:
沒有留言:
張貼留言