A-A+

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

2015年12月29日 站长资讯 暂无评论

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

||操作 :首先声明:在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这个值。这句话用代码表示吧:

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

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

  1. function test() {
  2.          var a = 4;
  3.          //if (a > 5) { alert("a是大于5的"); } else { alert("a是小于5的"); }
  4.          var result = a > 5 && "a是大于5的" || "a是小于5的";
  5.          alert(result);//结果 a是小于5的,如果看不懂,在仔细看一下他们(||  &&)的定义
  6.      }

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

  1. alert(undefined);     //undefined
  2. alert(typeof (null)); //object
  3. alert(typeof (undefined));//undefined
  4. alert(typeof (NaN));  //number
  5. alert(typeof (5));   //number
  6. alert(typeof (!!5));  //boolean
  7. alert(parseInt("aa123"));  //NaN
  8. alert(parseInt("123aa")); //123
标签:

给我留言