【JS】 || 和 &&和 ! 操做的那些事

 你們都知道,不管是.NET仍是java或是其餘語言都會有  或 與 非的操做,這裏我要討論的是 JS裏面的 || 和 && 操做。由於項目裏面用到了 || 的操做,原本也不是用不到,只是忽然想用一下,而後看了看其餘的博客,發現原來這個東西沒那麼簡單,JS真是高深,仍是好好研究的好。書歸正傳:html

   文章參考:http://www.jb51.net/article/21339.htmjava

   ||操做 :首先聲明:在js邏輯運算中,0、""、null、false、undefined、NaN都會判爲false。||操做就是若是前邊的表達式爲false那麼就取後邊的值。好比 <a>||<b> 若是<a>是false,那麼取<b>的值,同理:<a>||<b>||<c>只要<a><b>都爲false 那麼取<c>。因此咱們看比較高級的js代碼裏常常會有這種代碼:  var obj=obj||{};(若是obj爲undefined或者空,那麼從新定義爲{})ide

   &&操做:若是前邊的表達式爲true,那麼取後邊的值,若是前邊任意一個表達式爲false,那麼取false這個值。這句話用代碼表示吧:spa

        alert(typeof ("11" && undefined && "test" && {}));  //結果  undefined
        alert(typeof([] && "test" && 5));                   //結果   number  取值 5


那麼 ||操做和 &&操做有什麼用呢。它能夠精簡代碼。例如:.net

   function test() {
            var a = 4;
            //if (a > 5) { alert("a是大於5的"); } else { alert("a是小於5的"); }
            var result = a > 5 && "a是大於5的" || "a是小於5的";
            alert(result);//結果 a是小於5的,若是看不懂,在仔細看一下他們(||  &&)的定義
        }

結尾:你知道這些值是什麼嗎?htm

        alert(undefined);     //undefined
        alert(typeof (null)); //object
        alert(typeof (undefined));//undefined
        alert(typeof (NaN));  //number
        alert(typeof (5));   //number
        alert(typeof (!!5));  //boolean
        alert(parseInt("aa123"));  //NaN
        alert(parseInt("123aa")); //123

 以上代碼驗證地址http://imfyp.com/jsdemo/jstest.html
get

相關文章
相關標籤/搜索