在 Javascript 常有人使用 if(car.engine) 來判斷是 property 是否存在, 雖然方便, 但會有出錯的風險, 因為在使用 if(car.engine) 時, 如果不是 boolean 時, Javascript 內部會做一個自動轉型的動作, 因此 if (car.engine) 就等於 if (Boolean(car.engine)),而 car.engine 是 undified 的狀況下, if 測試會回傳 fasle, 但是當 car.engine 其值為 null, fasle, 0, "" 也都會回傳 false
所以測試 property 是否存在, 比較正確的做法是使用 hasOwnProperty, 使用上要特別注意的是 hasOwnProperty 並不會到 prototype chain 去尋找, 只會檢查本身是否有定義 property
> var car = {};
undefined
> Boolean(car.engine);
false
> car.engine =...
10/23/2013
Javascript null & undefined
1. null 定義 : 基本型別, 不代表任何值
primitive value that represents the intentional absence of any object value
null 參與數值運算時會轉成 0
> 123 + null
123
> 123 * null
0
2.undefined 定義 : 基本型別, 宣告後沒有指定值
primitive value used when a variable has not been assigned a value
undefined 參與數值結果都是 NaN
> 123 + undefined
NaN
> 123 * undefined
NaN
因此在 Javascript 中 null 和 undefined 是不一樣的東西, 使用上要注意
> typeof null
"object" //ECMAScript 6 後改成 primitive
> typeof undefined
"undefined"
> null...
10/16/2013
Strong-Named Assemblies 簡介

Strong Name 主要是為 .NET Framework 軟體組件開發者設計的一種機制, 除非是軟體公司, 一般使用者應該不太會用到這個功能
主要概念與使用方式,用故事的方式說明
1.Super軟體公司開發出一個超強函式庫, 並使用 Strong Name Compile 出 Super.dll
如何產生 Strong Name 的組件,
可參考 http://msdn.microsoft.com/en-us/library/8wxf689z.aspx
或在 Visual Studio 使用 Signing 功能
其概念就是利用憑證簽署的方式, 對 Super.dll 做簽署, 最大的好處就是檔案無法竄改
寫 ASP.NET 的開發者在 Web.config 一定有看過類似下面的字串
System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
PublicKeyToken 就是用來識別組件是否有效的一個資訊
另外組件要安裝到...
10/11/2013
HTTP basic access authentication
HTTP basic access authentication 是一個很基本的認證方式, 安全性差, 採用 Base64 編碼傳送帳號密碼
認證流程
1.瀏覽器對 Server 端發出請求
2.Server 端檢查該 User 尚未認證, 回應 Status Code 401 和 WWW-Authenticate 資訊在 header 中, 告訴瀏覽器需做基本認證
HTTP/1.0 401 Unauthorised
Content-Type: text/html; charset=UTF-8
WWW-Authenticate: Basic realm="TestSite"
Connection: Close
Content-Length: 24
3.使用者在瀏覽器畫面鍵入 User Name 和 Password 送出請求, 送出的 header 中, 接續在 Authorization: Basic 之後的文字, 就是帳號和密碼的 Base64 編碼
GET / HTTP/1.1
Host: www.example.com
User-Agent:...
10/07/2013
將 ASP .NET MVC 2 deploy 到 IIS6
10/01/2013
Amdahl's law
wikipedia => http://zh.wikipedia.org/zh-tw/%E9%98%BF%E5%A7%86%E8%BE%BE%E5%B0%94%E5%AE%9A%E5%BE%8B假設我們用時間來做為評估效能的指標,如果要提升效能,最有效益的方式,就是直接改善執行時間最長的那個部份例如台灣用電的比例工業 52%服務業 19%住宅 18%其它 11%如果要求住宅隨手關燈,購買節能家電,各種節電措施,就算改善了2%,對整體用電的改善,還是遠遠不及佔用電最大比例的工業用電改...
Subscribe to:
Posts (Atom)