非主流JavaScript教學(一)

來源:互聯網
上載者:User

題記:

寫本文有以下幾個目的:

1 最近活比較少。

2 抱怨現在的各種教學越來越完蛋, 然後別人說, 你寫個試試, 就知道不好寫了。

 

so我決定寫寫。面向讀者:沒有寫過JavaScript或者沒有被一些亂七八糟的教材所毒害的人。

這樣你就可以只被我一個人毒害了。^_^

 

本文:

我一向不喜歡《JavaScript權威指南》 這種雖然權威但是廢話連篇並且看起來毫無頭緒的書的。

根據相同的道理我也不喜歡看現代漢語詞典。

 

 我比較喜歡的是《JavaScript語言精粹》這種短小精悍並且有內涵的書籍。

實際上, 這個描述恰好也是對JavaScript這門語言的描述。

 

JavaScript是運行於瀏覽器上的, 你就暫時這麼認為吧。

 一般說來來部落格園的人不會沒有任何編程經驗的。 所以關於if, else, while, for之類的簡單文法我就不提了。 直接進入本文。

 

JavaScript是一門基於對象的語言。 你說物件導向也行。 反正都那個意思。

只不過JavaScript裡面很變態的一點就是:類也是對象。

嗯, 這麼說不太確切, 應該說沒有類。 然後JavaScript的開發人員用各種變態手段來類比類。

 

 我們先從一個簡單的程式入手吧。 我比較喜歡直接, 不喜歡含蓄。

我們寫如下的代碼:

(function(window, undefined){
    document.write('Hello, world!');
})(window);

記住JavaScript是一門很詭異的語言, 非常適合用來裝13。 因此千萬不能寫的太簡單。。

- -!

而運行方式則是:將JS檔案放入Script標籤。或者直接將代碼放入Script標籤。

具體就不示範了。 這段代碼會顯示出一個Hello, world!出來

 

逐步解釋整個代碼:

function關鍵字可以用於建立一個function(簡直是廢話)

後面用()來加參數。 

這個函數可以立刻啟動並執行。

所以整個相當於:

 

var aFunc = function(window, undefined){
    document.write('Hello, world!');
}
aFunc(window);

然後, window和undefined是幹嗎用的?

這個很簡單, 他們沒什麼用。

=.=

一般的js檔案都會這麼寫,理由是:

1 壓縮。

我們知道js檔案會被壓縮成更加短小精悍更加讀不懂的代碼(據說有些人可以直接寫出不用壓縮的代碼, 厲害厲害), 來減小檔案體積。 而window和undefined非常常用, 因此把他們轉化成非全域變數,就可以被壓縮了。 這樣會大大減小檔案體積。

2 一個函數如果聲明了兩個參數但是調用的時候只傳遞一個, 那麼第二個值就會被賦值為undefined。 你看, 我就這樣閃亮登場了。。

 

也許有人會說, 轉化後的代碼,這麼寫不行嗎:

 

function aFunc(window, undefined){
    document.write('Hello, world!');
}

aFunc(window);

請記住這樣是不好的。 他太容易被“非JavaScript程式員” 讀懂。 我們不能這樣。這樣達不到顯示我們與眾不同的目的, 達不到裝13的目的。

此外還有一個更重要的原因, 我們下一次的時候再說。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.