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