- 2013/8/11
原... JavaScript在內部是使用Unicode處理字元,實作上採用UTF-8,所以傳入encodeURIComponent()的字串都是以UTF-8進行編碼
改為... JavaScript支援Unicode,內部實作上採用16位元編碼每個字串元素,大致上可視為UCS-2/UTF-16(這當中還有些歷史因素造成的細節,詳見 Effective JavaScript 一書條款七),不過,傳入encodeURIComponent()的字串最後會以UTF-8進行編碼
- 2013/4/16
把自己的文件翻譯為 英文,並在過程中修正了一些原文件的錯誤。
- 2012/12/17
- 2011/4/11
https://openhome.cc/Gossip/JavaScript/Operator.html
第三個例子,由於左運算元非空字串,會當作結果成立,所以再判斷右運算元為0,所以當作不成立,整個&&運算此時確認不成立,傳回右運算元。
https://openhome.cc/Gossip/JavaScript/This.html
透過p2呼叫時,toString()中的this則會參考至p2所參考的物件。
第三個例子,由於左運算元非空字串,會當作結果成立,所以再判斷右運算元為0,所以當作不成立,整個&&運算此時確認不成立,傳回右運算元。
https://openhome.cc/Gossip/JavaScript/This.html
透過p2呼叫時,toString()中的this則會參考至p2所參考的物件。
- 2011/2/17
https://openhome.cc/Gossip/JavaScript/GET.html
多補充了一些編碼的處理。。XD
在JavaScript中,可以使用encodeURIComponent()為你作這些字元的編碼,編碼後的結果是遵守RFC 3986的規範,然而在RFC 3986之前,HTTP亦規範了GET與POST在發送請求參數時的編碼,大致上也是編碼為%hexhex,不過空白字元是編碼為 + 而不是RFC 3986的%20。如果直接透過瀏覽器按下發送按鈕來送出表單,則瀏覽器會自動處理編碼(依網頁上指定的編碼來處理),並將空白字元編碼為+,但透過非同步物件發送請求參數時,必須自行處理。
發送請求參數時,若使用encodeURIComponent()編碼後,要再將%20取代為+,以符合HTTP的規範。要注意的是,JavaScript在內部是使用Unicode處理字元,而傳入encodeURIComponent()的字串,都會被轉為UTF-8再進行編碼,若將encodeURIComponent()透過非同步物件發送出去,伺服端必須以UTF-8來處理接收到的字串。
如果你沒有透過encodeURIComponent()編碼,就直接透過非同步物件送出非ASCII字元,例如中文,那非同步物件會如何處理編碼,依不同的瀏覽器而有所不同,因此,建議還是使用encodeURIComponent()編碼後將%20取代為+再送出,避免不同瀏覽器的問題。
多補充了一些編碼的處理。。XD
在JavaScript中,可以使用encodeURIComponent()為你作這些字元的編碼,編碼後的結果是遵守RFC 3986的規範,然而在RFC 3986之前,HTTP亦規範了GET與POST在發送請求參數時的編碼,大致上也是編碼為%hexhex,不過空白字元是編碼為 + 而不是RFC 3986的%20。如果直接透過瀏覽器按下發送按鈕來送出表單,則瀏覽器會自動處理編碼(依網頁上指定的編碼來處理),並將空白字元編碼為+,但透過非同步物件發送請求參數時,必須自行處理。
發送請求參數時,若使用encodeURIComponent()編碼後,要再將%20取代為+,以符合HTTP的規範。要注意的是,JavaScript在內部是使用Unicode處理字元,而傳入encodeURIComponent()的字串,都會被轉為UTF-8再進行編碼,若將encodeURIComponent()透過非同步物件發送出去,伺服端必須以UTF-8來處理接收到的字串。
如果你沒有透過encodeURIComponent()編碼,就直接透過非同步物件送出非ASCII字元,例如中文,那非同步物件會如何處理編碼,依不同的瀏覽器而有所不同,因此,建議還是使用encodeURIComponent()編碼後將%20取代為+再送出,避免不同瀏覽器的問題。
- 2010/12/28
修正範例連結:
https://openhome.cc/Gossip/JavaScript/BuildAjaxLibrary.html
修正程式範例:
https://openhome.cc/Gossip/JavaScript/FunctionInstance.html
在一個匿名函式中,如果想取得本身實例,可以藉由arguments的callee來取得。例如:
函式既然是物件,本身亦可擁有特性。例如函式有個length特性,代表其參數個數:
https://openhome.cc/Gossip/JavaScript/BuildAjaxLibrary.html
修正程式範例:
https://openhome.cc/Gossip/JavaScript/FunctionInstance.html
在一個匿名函式中,如果想取得本身實例,可以藉由arguments的callee來取得。例如:
js> var gcd = function(num1, num2) { > return num2 != 0 ? arguments.callee(num2, num1 % num2) : num1; > }; js> gcd(20, 10); 10 js> |
函式既然是物件,本身亦可擁有特性。例如函式有個length特性,代表其參數個數:
js> var gcd = function g(num1, num2) { > return num2 != 0 ? g(num2, num1 % num2) : num1; > }; js> gcd.length; 2 js> |