0%

今天我們花點時間來談談物件實體語法常見的錯誤,以及使用 JSON 時所遇到的問題。

我們就先來了解什麼是 JSON 吧 !

JSON (JavaScript Object Notation)

JSON 是被物件實體語法 (object literals syntax) 所啟發,所以才稱為 JavaScript Object Notation,它看起來與物件實體語法很像,所以常會有人搞混,導致遇到一些錯誤,先讓我們回顧一下物件要怎麼建立。

閱讀全文 »

今天讓我們來談談該如何應用我們所學的知識,了解那些知名函式庫或框架常出現的東西,在經過前面的運算子和物件實體語法後,我們要來討論偽裝名空間 (Faking Namespaces)。

先讓我們來認識什麼是命名空間 (Namespaces) 吧 !

命名空間 (Namespaces)

命名空間是指變數和 function 的容器,用來維持相同名稱的變數和 function 分離。

閱讀全文 »

上一篇文章中,我們有提到用 new Object() 來建立物件不是最好的方法,今天就讓我們來談談物件和物件實體語法 (Objects Snd Object Literals) 吧 !

物件實體語法 (Object Literals)

在 JavaScript 中,做一件事有很多種的方法,除了使用 new Object() 來建立物件外,還有更簡單的方法能建立物件,那就是使用物件實體語法 — {} 來建立物件。

閱讀全文 »

今天我們要進入到全新的主題 — 物件和 function,雖然在其他程式語言它們是兩個不同的東西,但在 JavaScript 中它們可是有著非比尋常的關係,而在很多情況中,它們幾乎是相同的,所以就讓我們來談談物件和 function 吧 !

物件和 . (Objects And The Dot)

在這之前,我們先來了解物件和 . 的關係,我們都知道物件是由 Name/Value 所組合而成,而 Value 也可以是另一個 Name/Value 的組合,那物件是如何存在於記憶體中的呢 ? 物件是 Name/Value 組合,這個 Value 有哪些呢 ?

閱讀全文 »

今天我們要來談談那些大型的框架 (framework, e.g. Angular.js) 或函式庫 (library, e.g. jQuery) 是如何應用我們在課程中所學過的東西,我們就先針對上一篇文章的預設值來討論吧 !

預設值

我們可以透過先前所學的,像是預設值、執行環境和全域環境來了解那些有名的框架和函式庫中的程式碼,舉例來說:

閱讀全文 »

今天我們回顧一下運算子的強制轉型,並利用這個特性來做一些事吧 !

我們先建立一個 greet function,並設定一個 name 的參數,接著呼叫 greet function,傳入一些值,將結果輸出。

1
2
3
4
5
function greet (name) {
console.log('Hello, ' + name);
}

greet('apeiros0');
閱讀全文 »

上一篇文章中,我們了解到 JavaScript 動態型別和強制轉型不好的地方,那他們的用處是在哪呢 ? 讓我來談談存在 (Existence) 和布林 (Booleans)。

布林 (Booleans)

我們先將一些值透過 Boolean 這個內建 function 來轉換,像是:

注意:不推薦使用內建 function,但很適合拿來展示用。

閱讀全文 »

先前我們已經了解運算子的優先性和相依性、強制轉型等觀念,現在我們統合這些觀念,來了解 JavaScript 一些奇怪的行為。

讓我們先看一些例子,像是:

1
console.log(1 < 2 < 3);

以我們的觀念來看,會覺得結果是 true,而執行程式後,結果也是 true,代表 JavaScript 同意這個陳述句 (statement) 是正確的。

閱讀全文 »

今天我們要來認識在 JavaScript 中一個重要的觀念 —— 強制轉型。

強制轉型 (Coercion)

強制轉型是轉換一個值的型別到其他型別。

你可能有個數字,要轉換成字串;或是有字串,要轉換成數字,這在 JavaScript 很常發生,因為 JavaScript 是動態型別的語言。

舉例來說,我們知道 + 運算子會傳入兩個參數,並回傳一個結果給你,所以當傳入數字時,數字能相加。

閱讀全文 »

昨天我們已經了解什麼是運算子,今天我們來認識運算子的優先性 (precedence) 和相依性 (associativity) 吧 !

優先性 (precedence)

優先性表示哪個運算子會被優先呼叫。

在同一行程式中,如果不只有一個運算子時,運算子會依優先性高低被呼叫,而 JavaScript 會先處理高優先性的運算子,然後依序到低優先性的運算子。

閱讀全文 »