JavaScript 的成功讓人津津樂道,為 Web 網頁編寫 JavaScript 代碼已經是所有 Web 設計師的基本功,這門有趣的語言蘊藏着許多不為人熟知的東西,即使多年的 JavaScript 程式員,也未能完全吃透。本文從7個方面講述 JavaScript 中那些你不很熟知但非常實用的技巧。
JavaScript 可以使用簡略語句快速建立對象和數組,比如下面的代碼:

可以使用簡略語句如下:
對象 car 就此建立,不過需要特别注意,結束花括号前一定不要加 ";" 否則在 IE 會遇到很大麻煩。
建立數組的傳統方法是:
使用簡略語句則:
另一個可以使用簡略語句的地方是條件判斷語句:
可以簡略為:
JavaScript 有很多内置函數,有效的使用,可以避免很多不必要的代碼,比如,從一個數組中找出最大值,傳統的方法是:
使用内置函數可以更容易實作:
另一個方法是使用 Math.max() 方法:
你可以用這個方法幫助探測浏覽器
這解決了 IE 浏覽器的一個問題,通過這種方法,你總是可以找到那個正确的值,因為浏覽器不支援的那個值會傳回 undefined。
還可以使用 JavaScript 内置的 split() 和 join() 函數處理 HTML 對象的 CSS 類名,如果 HTML 對象的類名是空格隔開的多個名字,你在為它追加或删除一個 CSS 類名的時候需要特别注意,如果該對象還沒有類名屬性,可以直接将新的類名賦予它,如果已經存在類名,新增的類名前必須有一個空格,用傳統的 JavaScript 方法是這樣實作的:
使用 split 和 join 方法則直覺優雅得多:
與其在 HTML 文檔中設計一堆事件,不如直接設計一個事件代理,舉例說明,假如你有一些連結,使用者點選後不想打開連結,而是執行某個事件,HTML 代碼如下:
傳統的事件處理是周遊各個連結,加上各自的事件處理:
使用事件代理,可以直接處理,無需周遊:
比如,你有這樣一段代碼,很顯然,變量 name, age, status 将成為全局變量
為了避免這一問題,你可以使用匿名函數:
如果這個函數不會被調用,可以更直接為:
如果要通路其中的對象或函數,可以:
假如你想在别的地方調用裡面的方法,又不想在調用前使用 myApplication 這個對象名,可以在匿名函數中傳回這些方法,甚至用簡稱傳回:
在代碼中建立一個叫做 configuration 的對象
裡面儲存所有可以更改的配置,如 CSS ID 和類名,按鈕的标簽文字,描述性文字,本地化語言設定
将該對象設定為全局對象,以便别人直接通路并改寫
JavaScript 是一門前台語言,你需要别的語言同背景互動,并傳回資料,使用 AJAX,你可以讓 JavaScript 直接使用同背景的互動,将複雜的資料處理交由背景處理。
自己編寫适應各種浏覽器的代碼是完全浪費時間,應當選擇一個 JavaScript 架構,讓這些複雜的事情交給架構處理。
<a href="http://yuiblog.com/crockford/" target="_blank">Douglas Crockford on JavaScript</a>
JavaScript 深度視訊教程
<a href="http://dev.opera.com/articles/wsc/" target="_blank">The Opera Web Standards Curriculum</a>
JavaScript 詳解
<a href="http://www.comsharp.com/GetKnowledge/zh-CN/It_News_K902.aspx" target="_blank">有關 JavaScript 的 10 件讓人費解的事情</a>
<a href="http://www.comsharp.com/GetKnowledge/zh-CN/It_News_K869.aspx" target="_blank">新 API 尋求讓 JavaScript 操作本地檔案</a>
<a href="http://www.comsharp.com/GetKnowledge/zh-CN/TeamBlogTimothyPage_K804.aspx" target="_blank">讓 JavaScript 拯救 HTML5 的離線存儲</a>
<a href="http://www.comsharp.com/GetKnowledge/zh-CN/It_News_K833.aspx" target="_blank">開源項目越來越青睐 JavaScript</a>
<a href="http://www.comsharp.com/GetKnowledge/zh-CN/TeamBlogTimothyPage_K474.aspx" target="_blank">Javascript 是一個錯誤嗎?</a>
<a href="http://www.comsharp.com/GetKnowledge/zh-CN/It_News_K463.aspx" target="_blank">Javascript 2 前途塵埃落定</a>
<a href="http://www.comsharp.com/GetKnowledge/zh-CN/CMS_K866.aspx" target="_blank">Google 排名中的 10 個最著名的 JavaScript 庫</a>
<a href="http://www.comsharp.com/GetKnowledge/zh-CN/It_News_K875.aspx" target="_blank">ECMA 推出 JavaScript 5</a>
<a target="_blank" href="http://www.cnblogs.com/lhb25/p/must-read-links-for-web-designers-and-developers-volume-12.html">Web 前端工程師和設計師必讀精華文章推薦</a>
<a href="http://www.cnblogs.com/lhb25//lhb25/archive/2011/07/28/html5-awesome-single-page-sites-inspiration.html" target="_blank">酷!15個精美的 HTML5 單頁網站作品欣賞</a>
<a target="_blank" href="http://www.cnblogs.com/lhb25//lhb25/archive/2011/11/22/best-awesome-css3-animation-demos.html">炫!35個讓人驚訝的 CSS3 動畫效果示範</a>
<a href="http://www.cnblogs.com/lhb25//lhb25/archive/2012/03/02/30-mind-blowing-parallax-scrolling-effect-websites.html" target="_blank">贊!30個與衆不同的優秀視差滾動效果網站</a>
<a target="_blank" href="http://www.cnblogs.com/lhb25//lhb25/archive/2012/01/13/25-outstanding-single-page-website-designs.html">靓å!25個優秀的國外單頁網站設計作品欣賞</a>
<a target="_blank" href="http://www.cnblogs.com/lhb25//lhb25/archive/2011/08/09/awesome-html5-and-javascript-effects.html">帥!8個驚豔的 HTML5 和 JavaScript 特效</a>
<a href="http://www.cnblogs.com/lhb25//lhb25/archive/2011/06/27/35-exclusive-rainbow-colored-flash-websites.html" target="_blank">頂!35個很漂亮的國外 Flash 網站作品欣賞</a>
<a href="http://www.cnblogs.com/lhb25//lhb25/archive/2011/08/24/outstanding-admin-panels-part-one.html" target="_blank">哇!34個漂亮網站和應用程式背景管理界面</a>
<a href="http://www.yyyweb.com/go/web" target="_blank">本部落格新站點 ◆ 前端裡 ◆ 歡迎圍觀:)</a>
歡迎任何形式的轉載,但請務必注明出處。