• javascript操作


    1. >> 按位右移运算符

    result = expression1 >> expression2 

    右移表达式的位,保持符号不变。

    >> 运算符将 expression1 的位右移 expression2 中指定的位数。 用 expression1 的符号位(1负0正)填充右移后左边空出来的位。 右移的位被丢弃。 例如,计算完下列代码后,temp的值为 -4:因为 -14(即二进制的 11110010)右移两位后等于 -4(即二进制的 11111100)。
    补码计算 正数的补码为本身2进制表示,负数的补码为2进制码逐位取反后加1(符号位不变)
    14的2进制码为 0000 1110,按位取反为01110001 ,加1为 0111 0010,则-14 为 1111 0010,右移两位,用符号位(1),补全左边 则为 11111100,
    11111100对应的10进制换算  先减1,为 11111011,按位取反  10000100,即为-4
    var inputValue = '4';
    //0000 0100 -> 0000 0001
    console.log(inputValue >> 2);  //1
    
    //1
    var inputValue2 = -14;
    console.log(inputValue2 >> 2)  //-4
    

    2. 常用比较、运算操作  

     
    var undefined;
    undefined == null; // true
    1 == true;   // true
    2 == true;   // false
    0 == false;  // true
    0 == '';     // true
    NaN == NaN;  // false
    [] == false; // true
    [] == ![];   // true
    

      

    • undefined与null相等,但不恒等(===)
    • 一个是number一个是string时,会尝试将string转换为number
    • 尝试将boolean转换为number,0或1
    • 尝试将Object转换成number或string,取决于另外一个对比量的类型
    • 所以,对于0、空字符串的判断,建议使用 “===” 。“===”会先判断两边的值类型,类型不匹配时为false。

    那么问题来了,看下面的代码,输出什么,foo的值为什么?

    var foo = "11"+2-"1";
    console.log(foo);
    console.log(typeof foo);
    

      执行完后foo的值为111,foo的类型为String

  • 相关阅读:
    NC 5的开发环境起不了客户端
    NC 6系初始化EJB
    ubuntu安装javaweb
    html 优化
    ubuntu
    jquery
    前端优化
    京东设计中心
    html cookie
    html5 use video camera
  • 原文地址:https://www.cnblogs.com/teamobaby/p/4114990.html
Copyright © 2020-2023  润新知