首页 > 代码库 > 【JS】 || 和 &&和 ! 操作的那些事

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

 大家都知道,不论是.NET还是java或是其他语言都会有  或 与 非的操作,这里我要讨论的是 JS里面的 || 和 && 操作。因为项目里面用到了 || 的操作,本来也不是用不到,只是突然想用一下,然后看了看其他的博客,发现原来这个东西没那么简单,JS真是高深,还是好好研究的好。书归正传:

   文章参考:http://www.jb51.net/article/21339.htm

   ||操作 :首先声明:在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或者空,那么重新定义为{})

   &&操作:如果前边的表达式为true,那么取后边的值,如果前边任意一个表达式为false,那么取false这个值。这句话用代码表示吧:

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


那么 ||操作和 &&操作有什么用呢。它可以精简代码。例如:

   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的,如果看不懂,在仔细看一下他们(||  &&)的定义
        }

结尾:你知道这些值是什么吗?

        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

本文出自 “Pz的技术实训基地” 博客,请务必保留此出处http://panzi.blog.51cto.com/4738203/1585337

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