• javascript 操作符和表达式


    操作符和表达式

    /* js操作符汇总 */
    一元操作符(++ ,--)
    算术操作符(+ ,- ,* ,/,%)
    关系操作符(> ,< ,>= ,<=)
    相等操作符(== ,!= ,=== ,!==)
    逻辑操作符(! ,&& ,||)
    赋值操作符(=)
    条件操作符(?:)
    逗号操作符(,)
    对象操作符(new ,delete ,[] ,instanceof ,in)
    位操作符(~ ,& ,| ,^ ,<< ,>> ,>>>)
    

    一元操作符(++ ,--)

    var age = 29;
    ++age;//30
    age++;//31
    
    var age = 29;
    var num = age++;//num = 29,因为`var num = age++`是先使用后`++`的
    

    算术操作符(+ ,- ,* ,/ ,%)

    var num = 5 + 6;//11
    var num1 = 3%2;//1
    

    关系操作符(> ,< ,>= ,<=)

    var result = 6>4;
    aler(result);//true
    

    相等操作符(== ,!= ,=== ,!==)

    var num = 4;
    num == 4;//true
    
    var num = "4";
    num == 4;//true
    
    0 == false;//true
    2 == true;//false
    '' == 0;//true
    
    var num = "4";
    num === 4;//false
    num !== 4;//true
    

    逻辑操作符(! ,&& ,||)

    /* 非:‘!’ */
    var flag = true;
    alert(!flag);//false
    ---
    alert(!0);//true
    alert(![]);//false
    alert(!"");true
    ---
    
    /* 与:‘&&’ (短路的操作,第一个为true,则整个表达式的值为另一个 */
    var result = true && false;//false
    var result = true && 3;//3
    var result = 1 && 3;//3
    var result = [] && "";//""
    
    /* 或:‘||’ (短路的操作,如果第一个为true,则值为第一个;否则值为第二个 */
    var result = true || 3;//true
    var result = 1 || 3;//1
    var result = [] || "";//[]
    var result = false || 0;//0
    var result = "" ||3;//3
    var result = null || true;//true
    ---
    var num = 0;
    var result = 3 || num++;//3(应该是,待验证!!,经过验证,是正确的!)
    

    赋值操作符(=)

    var num = 5;//5
    num = mum + 5;//10
    mun +=5;//15
    

    操作符(?:)

    /*
    布尔表达式 ? 值一 : 值二 ;
    若‘布尔表达式’的值为true,则上式的值为‘值一’,否则为‘值二’
    */
    ---
    var result;
    var sex = true;
    if(sex){
        result = 'male';
    }else{
        result = 'female';
    }
    ---
    /* 上面的语句可以用条件操作符改写如下 */
    var sex = true;
    var result = sex ? 'male' : 'female';
    

    逗号操作符(,)

    var num1 = 5;
    var num2 = 10;
    var num3 = 0.5;
    /* 上面的三个式子可以用逗号操作符改写如下 */
    var num1 = 5,num2 = 10,num3 = 0.5;
    

    对象操作符(new / delete / . / [] / instanceof / in

    var cat = new Object();//用方法new来定义cat为一个对象
    ---
    var cat = {name:'kitty',age:2};
    aler(cat.name);//'kitty'
    delet cat.name;
    alert(cat.name);//undefined
    ---
    var cat = {name:'kitty',age:2};
    alert(cat.name);//'kitty'
    alert(cat['name']);//'kitty'
    ---
    var cat = {name:'kitty',age:2};
    alert(cat instanceof Object);//true
    alert(cat instanceof Number);//false
    ---
    var cat = {name:'kitty',age:2};
    alert('name' in cat);//true
    alert('run' in cat);//false
    

    位操作符(~,&,|,^,<<,>>,>>>)

    这里的位操作符是针对二进制数字的操作,详情待研究!!!;

    var num = 8;
    num & 4;//意思是8的二进制数字`1000`和4的二进制数字`0100`对位比较,相同为1,不同为0,结果为0
    ---
    var num = 2;
    num <<1;//意思是2的二进制数字`0010`中的‘1’向左移动1位,结果为`0100`即为4
    num <<2;//意思是2的二进制数字`0010`中的‘1’向左移动2位,结果为`1000`即为8
    

    操作符优先级

    var num = 5 + 4 * 3;//17
    4 + 0 || 3;//4
    !false && [];//[]
    4>3?5:7+10;//5
    
  • 相关阅读:
    [转]拜占庭故障 & Paxos 算法
    如何让 YARN 支持 CNPM 的完整加速
    面试必问系列:悲观锁和乐观锁的那些事儿
    ajax下载文件的坑
    mac 装homebrew
    SLF4J报错问解决
    java追加文件
    CentOS 清理空间
    Dockerfile 通过 ARG 设置 ENV 无效的原因
    GoLang 中发送 email 邮件
  • 原文地址:https://www.cnblogs.com/luwanlin/p/14264682.html
Copyright © 2020-2023  润新知