zoukankan      html  css  js  c++  java
  • js 中的 && 与 ||

    这里记录一些简单的东西,高手就跳过吧。

    javascript中有两个逻辑判断付,&& 和 || 。

    &&的中文意解是“并且”,例如var bool = AA && BB,只有当 AA 和 BB都是true的时候,bool才是true。顺便记录一下,js的逻辑运算中,0、undefined、null、NaN、''、""、false等(如果没有落下的话)都会判定为false,其他的都是true。

    所以就有了这样的定义变量方式:

    function test(a){
    
      this.a = a || {};
    
      return a;
    
    } //如果参数 a 为空,就把空对象赋给 a 
    

      

    或者有三元表达式:

    function (a){
    
      this.a > 0 ? a = 1 : a = {};
    
      return a;
    
    }
    

      

    或者有判断今天是星期几:

    var day = {
                '0': '星期日',
                '1': '星期一',
                '2': '星期二',
                '3': '星期三',
                '4': '星期四',
                '5': '星期五',
                '6': '星期六',
    }
    alert(day[new Date().getDay()]);

    //感觉写错了,应该是下面那个才对

    function _getDate() {
                var day2 = new Date().getDay();
                return (day2 = 0 && '日') || (day2 = 1 && '一') || (day2 = 2 && '二') || (day2 = 3 && '三') || (day2 = 4 && '四') || (day2 = 5 && '五') || (day2 = 6 && '六');
    }
    alert('星期' + _getDate());

     

    还有一些更好的用法,例如在一个数组里面,把数组中重复的元素删除:

    var arr = [".?23", ".+", ".*", 123, "sfsdf", "123", "345", "123", "123", "345", "456", "567", "sdc"];
    
    for(var i = 1; i < arr.length && ((arr.indexOf(arr[i]) < i && arr.splice(i, 1) && i--) || 1 ); i++);

    //从arr[1]开始,每一项元素在数组中第一次出现的位置和 i 的进行对比,如果位置是在 i 之前的,就把这个元素删掉,并且 i 指针退一格
  • 相关阅读:
    创业团队的狼性管理:慈不掌兵 义不聚财
    爱德华·斯诺登
    塞班岛
    大兴雷克萨斯深度剖析2013款LS460L_深圳大兴雷克萨斯_太平洋汽车网
    金字塔底端_百度百科
    左立_百度百科
    志大才疏_百度百科
    JS~json日期格式化
    MVVM架构~knockoutjs系列之从Knockout.Validation.js源码中学习它的用法
    JS~重写alter与confirm,让它们变成fancybox风格
  • 原文地址:https://www.cnblogs.com/zxdesign/p/2966775.html
Copyright © 2011-2022 走看看