Javascript 籬式條件判斷
更新時間:2008年08月22日 12:54:20 作者:
我們已經(jīng)知道,null 沒有任何的屬性值,并且無法獲取其實體(existence)值。所以 null.property 返回的是錯誤(error)而不是 undefined 。
考慮下面的代碼
if (node.nextSibling.className == ...) {
...
}
在 node 或者 node.nextSibling 為空(null)的情況下,會返回錯誤(error)。所以,通常情況下的解決方案的代碼為
if ((node) && (next = node.nextSibling) && ... ) {
...
}
那么,當條件判斷一多的情況下,代碼會形成下面的情況
if (
(node) &&
(node.nextSibling) &&
(node.nextSibling.className == ...)
... ) {
...
}
隨著判斷條件的不斷的增加,代碼會變得非常的“丑陋”。
有個小的“伎倆”,可以簡化條件判斷表達式。我們可以增加個空對象({})或者零(0)作為替代
if ( next = (node || 0).nextSibling) ) {
...
}
那么,上述的代碼就可以這樣寫
if (((node || 0).nextSibling || 0).className == ...) {
...
}
--Split--
就個人而言,上述的從某種角度而言,代碼會非常的精簡。但日常實際的編碼過程中,尤其是多人配合的情況下,這些代碼可能會給其他開發(fā)人員造成一定的困擾。
正如 小馬 所言,如果已經(jīng)在使用某些框架,需要具體問題具體分析。比如上述的條件判斷代碼,使用 YUI 編碼就可以使用
YAHOO.util.Dom.hasClass(el, className)
顯得更加的精簡,并且相比上述的代碼更容易理解。
if (node.nextSibling.className == ...) {
...
}
在 node 或者 node.nextSibling 為空(null)的情況下,會返回錯誤(error)。所以,通常情況下的解決方案的代碼為
if ((node) && (next = node.nextSibling) && ... ) {
...
}
那么,當條件判斷一多的情況下,代碼會形成下面的情況
if (
(node) &&
(node.nextSibling) &&
(node.nextSibling.className == ...)
... ) {
...
}
隨著判斷條件的不斷的增加,代碼會變得非常的“丑陋”。
有個小的“伎倆”,可以簡化條件判斷表達式。我們可以增加個空對象({})或者零(0)作為替代
if ( next = (node || 0).nextSibling) ) {
...
}
那么,上述的代碼就可以這樣寫
if (((node || 0).nextSibling || 0).className == ...) {
...
}
--Split--
就個人而言,上述的從某種角度而言,代碼會非常的精簡。但日常實際的編碼過程中,尤其是多人配合的情況下,這些代碼可能會給其他開發(fā)人員造成一定的困擾。
正如 小馬 所言,如果已經(jīng)在使用某些框架,需要具體問題具體分析。比如上述的條件判斷代碼,使用 YUI 編碼就可以使用
YAHOO.util.Dom.hasClass(el, className)
顯得更加的精簡,并且相比上述的代碼更容易理解。
相關文章
代碼塊高亮可復制顯示js插件highlight.js+clipboard.js整合
最近有個需求是將jsp頁面上的某一段代碼塊格式化成類似CSDN的代碼塊的樣式,而且很多平臺都使用了這樣的功能,下面就為大家簡單分享一下2021-02-02
JavaScript Cookie的讀取和寫入函數(shù)
Cookie的讀取和寫入實現(xiàn)函數(shù)。2009-12-12
一文吃透JS樹狀結構的數(shù)據(jù)處理(增刪改查)
在開發(fā)后臺管理系統(tǒng)時,常常會涉及到各種樹狀結構的數(shù)據(jù)處理邏輯,例如:增,刪,改,查等。而樹狀結構的處理就沒有數(shù)組那么的直觀。本文為大家總結了JS樹狀結構的數(shù)據(jù)處理的方法,需要的可以參考下2022-07-07
JavaScript Reflect Metadata實現(xiàn)詳解
這篇文章主要介紹了JavaScript Reflect Metadata實現(xiàn)詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-12-12
基于javascript html5實現(xiàn)3D翻書特效
這篇文章主要介紹了基于javascript html5實現(xiàn)翻書特效的實現(xiàn)方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-03-03
純JS實現(xiàn)根據(jù)CSS的class選擇DOM
這篇文章主要介紹了純JS實現(xiàn)根據(jù)CSS的class選擇DOM,需要的朋友可以參考下2014-03-03
JavaScript字符串轉數(shù)字的簡單實現(xiàn)方法
這篇文章主要給大家介紹了關于JavaScript字符串轉數(shù)字的簡單實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-11-11

