zoukankan      html  css  js  c++  java
  • javascript运算符

    5.1.2   优先级和结合性

    优先级:指运算符的运算顺序,通俗的说就是先计算哪一部分。

    结合性:同一优先级运算符的计算顺序,通俗的说就是从哪个方向算起,是左到右还是右到左。

     

     优先级  运算符  描述  结合性
    由高到低排序 () 括号 从左到右
    ++ -- 递增或递减 从右到左
    ! 逻辑非 从右到左
    *   /   % 乘法、除法、取模 从左到右
    +   - 加法、减法 从左到右
    + 拼接 从左到右
    <     <= 小于、小于等于 从左到右
    >     >= 大于、大于等于 从左到右
    = =     != 等于、不等于 从左到右
    = = =     != = 等同(类型相同)、不等同 从左到右
    & 按位与 从左到右
    | 按位或  
    ^ 按位异或  
    ~ 按位非  
    << 按位左移  
    >> 按位右移  
    >>> 按位右移,左边以0填充  
    && 逻辑与 从左到右
    | | 逻辑或 从左到右
    ?: 三元条件表达式 从右到左
    =  +=  -=  *=  %=  <<=  >>= 赋值 从右到左

     

     

    1 var x = 5+4*12/4  //4*12 /4 +5 

     

     

    5.2   运算符类型

    5.2.1   算术运算符: + - * /

    递增运算和递减运算,递增运算是将其操作数加1,递减运算是将其操作数减1。运算符有:前缀形式(++X 或 - -X),后缀形式(X++ 或 - -X)。

    前缀形式是先运算再赋值。如:y=0  x=5   y=++x   y=6   因为是先运算再赋值,先将x+1后再赋值给y,所以y=6   x=6

    后缀形式是先赋值在运算。如:y=0  x=5   y=x++   y=5   因为是先赋值再运算,先把x的值赋给y,所以y=5   x=6

     

    5.2.2   相等:当两个数的数值相同时它们相等。字符串和数字进行比较时,如果数字和字符串有相同的字符串则它们相等,如:"500"和500相等。NaN(非数字)和任何操作数都不相等,包括NaN本身。正零和负零是相等的。Null和undefined是相等的。

     

    5.3   逻辑运算符

    &&逻辑与:两个条件都满足时才为true。如果&&左侧的表达式的计算结果为零,null或空字符"",则表达式的值为false,如果运算符左侧的表达式的计算结果为true(非零),就计算右侧的表达式,如果该表达式也为true,则整个表达式的结果就为true。如果运算符左侧为true,右侧为false,那么整个表达式的值就为false。

    “this”&&“that” 返回的值是that,因为&&需要两个都为真,当两个值都为真时就返回最后的一个值。

     

    | |逻辑或:只需要一个条件为true,就为true。如果左侧表达式为true,侧不需要再做其它操作,整个表达式就为真;如果左侧为false,就计算右侧,右侧为true整个表达式就为true,右侧为false整个表达式就为false。

    “this”&&“that” 返回的值是this,当this为真时就满足了一个条件为真,整个表达式就为真,所以返回的值是this。

     

    !逻辑非:如果表达式为false则返回true,如果表达式为true则返回false。

     

    5.4   条件运算符

    格式:条件表达式?表达式:表达式    

    示例:x ? y : z   如果x为真,表达式的值为y,否则表达式的值变为z

        big = (x > y) ? x : y   如果x大于y,则将x赋给变量big,否则将y赋给变量big

     

    5.5   位运算符

     

    运算符 函数 示例 运算规则
    & 位与 x & y 如果两个相应位都为1则该位返回1
    | 位或 x | y 如果两个相应位有一个为1则返回1
    ^ 位异或 x ^ y 如果两个相应位只有一个为1则返回1
    ~ 位非 ~x 将运算符按位取反,将1变0,0变1
    << 左移 x << y 将二进制数x向左移y位,右边补0
    >> 右移 x >> y 将二进制数x向右移y位,移出位丢弃
    >>> 右移补零 x >>> b 将二进制数x向右移y位,移出位丢弃,左边以0填充

     

     

       101

    &  100

    -----------

       100

     

    5.6   数据类型转换

    String()  转换为字符串类型

    Number()  转换为数字类型

    Boolean()  转换为布尔类型

     

    1 var result = Number(num1)+Number(num2)  //将num1和num2转为为数字类型后相加后的值赋给result 

     

    parseInt:将字符串转换为整数。从字符串的开头开始解析,在第一个非整数的位置停止解析,并返回前面读到所有的整数。如果字符串不是以整数开头的,将返回NaN。如:parseInt(“150 hi”)返回的值是:150,parseInt("hi")返回的值是:NaN。

     

    parseFloat:将字符串转换为浮点数。 从字符串的开头开始解析,在第一个非整数的位置停止解析,并返回前面读到所有的整数。如果字符串不是以整数开头的,将返回NaN。如:parseFloat("15.5 hi") 返回的值是:15.5,parseFloat("hi 15.5")返回的值是:NaN。

     

    eval:将字符串作为javascript表达式进行计算,并返回执行结果,如果没有结果则返回undefined。

     

    1 var str="5+4"; 
    2 var num1=eval(str);  //eval()函数将"5+4"作为javascript指令计算字符串表达式。变量num1的值
  • 相关阅读:
    重构改善既有代码设计--重构手法 之重新组织你的函数总结
    重构改善既有代码设计--重构手法09:Substitute Algorithm (替换算法)
    重构改善既有代码设计--重构手法08:Replace Method with Method Object (以函数对象取代函数)
    重构改善既有代码设计--重构手法07:Remove Assignments to Parameters (移除对参数的赋值)
    重构改善既有代码设计--重构手法06:Split Temporary Variable (分解临时变量)
    重构改善既有代码设计--重构手法05:Introduce Explaining Variable (引入解释性变量)
    重构改善既有代码设计--重构手法04:Replace Temp with Query (以查询取代临时变量)
    leetcode-441-Arranging Coins
    leetcode-438-Find All Anagrams in a String
    leetcode-434-Number of Segments in a String
  • 原文地址:https://www.cnblogs.com/52css/p/2507187.html
Copyright © 2011-2022 走看看