2016年1月27日

[筆記] JavaScript中物件(object)和JSON格式的轉換

圖片來源:JavaScript 101 在上一篇文章中([筆記] JavaScript中的物件建立(Object) - Part 2),說明了如何使用object literal syntax來建立物件(也就是使用{ }來建立物件),這裡來談談JSON和object literal syntax的關係。 什麼是JSON 在網頁資料處理的過程中,我們常常將資料從一端傳到另一端(例如,從伺服器端傳到客戶端),這時候我們就需要一些共通的格式來方便包裝資料和解讀資料。 假設我們現在要傳遞一個物件的資料,這個物件長這樣: XML 過去相當常用的一種資料格式是XML(EXtensible...

[筆記] JavaScript中的物件做為namespace的簡單運用

圖片來源:JavaScript 101 在前兩篇文章中我們說明了在JavaScript中如何建立物件([筆記] JavaScript中的物件建立(Object) - Part 1、[筆記] JavaScript中的物件建立(Object) - Part 2),在這篇文章中,我們則是會簡單說明如何運用物件。 我們先來看這段程式碼,複習一下: 想想看,如果我執行這段程式的話,呼叫出來的結果會是「你好」還是「Hello」?為什麼呢? 答案是Hello。 為什麼呢?因為JavaScript在解析程式的時候,會先建立好定義的變項名稱(即,greet),並把它存在記憶體中,這時候greet的變項已經被建立,而值則是"undefined",接著JavaScript才會去逐行執行程式,greet的值就從undefined-->你好-->Hello,有了如下的變化,因此最後呼叫出來的結果會是Hello(參考:[筆記]...

2016年1月26日

[筆記] 談談JavaScript中的物件建立(Object) - Part 2 | 利用大括號{}建立物件

圖片來源:JavaScript 101 在上一篇文章中我們提到([筆記] JavaScript中的物件建立(Object) - Part 1),我們可以先使用"[ ]"和" . "來建立物件,在這篇文章中我們則會使用object literal syntax的方法,也就是使用"{ }"來快速又簡便的建立物件。 使用{ }建立物件 在上一篇文章的最後,我們主要是使用new Object()搭配上"."的方式來建立物件。 呼叫出來的結果長這樣: 但其實在建立物件上有更快的做法,我們可以直接使用{ },我們可以把上面的程式碼,改成這樣: 透過這種方式,可以得到一模一樣的結果。 STEP...

2016年1月25日

[筆記] 物件是什麼?method 是什麼?談談 JavaScript 中的物件建立(Object) - Part 1

在這篇文章中我們將會說明如何建立 JavaScript 裡的物件(Object)。 物件(Object)是什麼? 首先,我們要知道物件是什麼。**物件(Object)**簡單來說,就是一堆「名稱 - 值」的配對(key - value pairs)。至於可以放入哪些值呢? 第一種是原生的值(primitive),像是布林值(Boolean)、數值(Number)或是字串(String),而在物件當中,我們把這類的值稱做屬性(Property)。 第二種可以放入的值是物件(Object),也就是在一個物件裡面再嵌入一個物件,這種以物件為值的情況我們也把它稱作屬性(Property)。 ...

2016年1月20日

[筆記] JavaScript中coercion的實際使用--建立函式預設值(default value)

圖片來源:JavaScript 101 由於在目前的JavaScript中,撰寫函式的時候並不像PHP或其他程式語言可以直接賦予預設值(未來應該可以), 因此在這篇文章中,我們會說明如何用coercion這樣的特性來建立非常簡潔的函式預設值。 我們先建立一個函式,取名叫做greet。這個函式非常簡單,包含一個變數,就是去呼叫名字(name)而已。 在最下面的地方,我們去呼叫這個函式,並且代入"PJCHENder",可想而知的,console的結果如下: 如果在函式中沒有代入任何的值的話,會怎麼樣呢? 如果我們在函式中沒有將name給值,那麼會發生什麼事呢? 結果如下: #1:和其他程式語言不太一樣的地方,JavaScript並沒有回傳任何錯誤的訊息,而是將name直接回傳"undefined"。這是因為在程式執行的過程中,一個新的execution...

2016年1月19日

[筆記] JavaScript中coercion的實際使用--if判斷式

圖片來源:JavaScript 101 在上一篇文章中([筆記] 談談JavaScript的coercion),我們談到了JavaScript中強制轉換資料型態(coercion)的特性。那麼實際操作上,coercion能夠帶給我們什麼樣好的處呢? 我們同樣先來看一段程式碼,我們用Boolean()將"undefined", "null", 和''強制轉換成Boolean型態的資料,看看結果為何? 結果顯示,不論是undefined, null或"", 最後都會回傳"false"的結果。 而我們就可以利用這樣的特性來撰寫if指令,如果a存在的話就執行...,如果a沒有值則...。 透過這種方法,我們就可以判斷a是否有被給值。但這種方法要特別留意的地方是...

2016年1月6日

[筆記] 談談JavaScript的coercion

圖片來源:JavaScript 101 這篇來談談JavaScript中coercion的概念,coercion指的是將資料從一種型態轉換成另一種型態,在某些情況下JavaScript會根據它自己的判斷將資料轉換成另一種型式。 讓我們來看看下面這個例子: 其中1是數字,2則是字串,那麼a到底會得到什麼樣的結果? 答案是..."12" 為什麼呢? 因為JavaScript在執行這段程式的過程中,它會儘可能去的猜測你要表達的意思是什麼?在這裡它其實是把"1"當成了字串去處理,也就是將原本的數值轉換成字串的型式(coercion),所以才會變成12,因為1是字串、2也是字串,然後中間用字串連接子"+"連接起來,最後便成了12,而這個12其實也是個字串。 我們可以用typeof()這個指令來檢驗a這個變數的型態,會發現,的確回傳了a為字串的結果。 這個範例可以給我們什麼啟示呢? 有些時候我們在寫程式的時候,會像下面這樣,中間已經隔了一些程式碼,最後才來進行運算,也許你原本預期是得到"3"的結果,結果竟然回傳了"12",這時候,我們可以想到有可能是JavaScript中的coercion導致的。 →回到此系列文章目錄 資料來源 [Udemy]...