利用JScript中運算符"||"和"&&"的特殊特性實現(xiàn)代碼精簡第1/2頁
JScript對于邏輯運算的true|false是這么定義的:
- 所有對象都被認為是 true。
- 字符串當且僅當為空(""或'')時才被認為是 false。
- null 和未定義的均被認為是 false。
- 數(shù)字當且僅當為 0 時才是 false。
可是邏輯運算符||和&&雖然遵循上面的定義規(guī)則,但是它們返回的值卻很有意思。
對于&&運算,按照上面的規(guī)則,表達式 if ( 'abc' && '123' && new Date() ) 是執(zhí)行true分支,可是這個表達式如果寫成:
var value = 'abc' && '123' && new Date();結果value=Fri Jan 21 00:01:17 UTC+0800 2005,原它從左到右檢測,如果到了最后一個表達式也是為true的,就返回那個表達式。
對于||運算同理,對于下面的表達式:
var value1 = 'abc' || '123' || null || false;
var value2 = null || '' || false || 'ok'; 結果value1='abc',value2='ok'。這是因為||運算會有"短路"特性,他也是從左向右檢測,只不過它是一但發(fā)現(xiàn)有為true的值,就立即返回該表達式。
這樣的特性可以幫組我們寫出精簡的代碼,可是同時也帶來代碼不便于閱讀維護的問題。
由于我手頭暫時沒有NS和moz什么的瀏覽器,不知道標準JavaScript是否也是這樣支持的?如果您方便的話,請告如我運行后的結果。
相關文章
JS實現(xiàn)無限級網頁折疊菜單(類似樹形菜單)效果代碼
這篇文章主要介紹了JS實現(xiàn)無限級網頁折疊菜單(類似樹形菜單)效果代碼,涉及JavaScript基于鼠標事件實現(xiàn)針對頁面元素結點的遍歷及樣式操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-09-09
JS實現(xiàn)彈出浮動窗口(支持鼠標拖動和關閉)實例詳解
這篇文章主要介紹了JS實現(xiàn)彈出浮動窗口,可支持鼠標拖動和關閉的功能,界面美觀大方,涉及javascript動態(tài)創(chuàng)建對話框的相關技巧,需要的朋友可以參考下2015-08-08
使用JavaScript監(jiān)視有沒有被刷新后跳轉其他頁面
這篇文章主要為大家詳細介紹了如何使用JavaScript監(jiān)視有沒有被刷新后跳轉其他頁面,文中的示例代碼講解詳細,感興趣的小伙伴可以參考一下2025-01-01
JavaScript優(yōu)化以及前段開發(fā)小技巧
隨著前端技術的發(fā)展,前端業(yè)務越來越繁重,這大大增加了JS代碼量。因此,要提高Web的性能,我們不僅需要關注頁面加載的時間,還要注重在頁面上操作的響應速度。那么,接下來我們討論幾種能夠提高JavaScript效率的方法。2017-02-02

