zoukankan      html  css  js  c++  java
  • JS中的运算符&JS中的分支结构

    一、JS中的运算符
    1、算术运算(单目运算符)
         + 加、- 减、* 乘、/ 除、% 取余、++ 自增、-- 自减
         >>> +:有两种作用,连接字符串/加法运算。当+两边全为数字时,进行加法运算;
                    当+两边有任意一边为字符串时,起连接字符串的作用,连接之后的结果为字符串
                除+外,其余符号运算时,会先尝试将左右变量用Number函数转为数字                   
         >>> /: 结果会保留小数点 
         >>> ++: 自增运算符,将变量在原有基础上+1;
                 --: 自减运算符,将变量在原有基础上-1
    【a++和++a的异同】
    ① 相同点:无论a++还是++a,运算完后,a的值均会+1;
    ② 不同点:a++,先用a的值去运算,再把a+1;
       ++a,先把a+1,再用a+1以后的值去运算
    egvar a=3,b,c;
             b = a++ +2;//先用a运算,b=3+2,再把a+1,a=4
             c = ++a +2;//先把a+1,a=5 再用a+1以后的值去运算,c=5+2
     
    2、赋值运算
    = 赋值、 +=  -=  *=  /=  %=
    +=:a+=b;相当于a=a+b;但是,前者的运算效率要比后者快,所以推荐使用+=写法
      
    3、关系运算
    == 等于、===严格等于(全等)、!= 不等、!== 不全等、>、<、>=、<=
    >>> 关系运算符,运算之后的结果,只能是Boolean类型
    >>> 判断一个数字是否处于某个期间,必须用&&链接;
           10>a && a>0 √    10>a>0 ×
    >>> ===:严格等于;要求不但要类型相同,值也必须相同;类型不同,结果直接为false;类型相同,再进行下一步判断
            ==:等于。类型相同,与===效果一样;类型不同时,会先尝试用Number函数将两边转为数字再进行判断
                     但是,有个别特例,如:Null==false ×   Null==Undefined  √
                                                            NaN==NaN  ×
     
    4、条件运算符(多目运算)
    a>b?true:false
     有两个重要符号:?和:
    当?前面部分,运行结果为true时,执行:前面的代码;
    当?前面部分,运行结果为false时,执行:后面的代码;
     
    冒号两边可以为数值,则整个式子可用于赋值。var a=1>2?1:2;
    冒号两边可以为代码块,将直接执行代码。var a=1>2?alert(1):alert(2);
    多目运算符可以多层嵌套。  var a=1>2?alert(1):(1<2?4:5);
      
    5、位运算符、 逻辑运算符
    &、|、~     && 与、|| 或、! 非
      
    && 两边都成立,结果为true;
    || 两边有任意一边成立,结果为true
     
    6、运算符的优先级
    ()                    小括号最高
    !  ++  --          单目运算符
    *  /   %
    +  -
    >  <   >=  <=
    == !=
    &&                 与或同时存在时,&&比||高
    ||
    =  +=  -=  *=  /=  最低的是各种赋值
     
    eg:水仙花数
    <script type="text/javascript">
        var num=prompt("请输入一个三位正整数:");
        var a,b,c;
        a=parseInt(num/100);
        b=parseInt(num/10)%10;
        c=num%10;
        var sum=a*a*a+b*b*b+c*c*c;
        var result=sum == num?"是水仙花数":"不是水仙花数"
        alert("您输入的:"+result);
    </script>
    二、JS中的分支结构
    【if-else结构】
    1、结构的写法:
     if(判断条件){
     //条件为true时,执行if的{}
     }else{
     //条件为false时,执行else的{}
     }
    2、注意事项:
    ① else{}语句块,可以根据情况进行省略
    ② if和else后面的{}可以省略,但是省略{}后,if和else后面只能跟一条语句。
       (所以,并不建议省略{})
     
    3、if的()中的判断条件支持的情况:
    ① Boolean:true为真,false为假;
    ② String:   空字符串为假,所有非空字符串为真;
    ③ Number:   0为假,一切非0数字为真;
    ④ Null/Undefined/NaN:   全为假;
    ⑤ Object:   全为真
     
    【多重if、阶梯if结构】
    1、结构写法:
    if(条件一){
     //条件一成立,执行的操作
     }else if(条件二){
     //条件一不成立&&条件二成立,执行的操作
     }else{
     //上述所有条件都不成立时,执行的操作
     }
    2、多重if结构中,各个判断条件是互斥的,执行选择其中一条路执行。遇到正确选项,并执行完以后,直接跳出结构,不再判断后续分支
     
    【嵌套if结构】
    1、结构写法:
    if(条件一){
     // 条件一成立
     if(条件二){
     // 条件一成立&&条件二成立
     }else{
     // 条件一成立&&条件二不成立
     }
     }else{
     // 条件一不成立
     }
    2、在嵌套if结构中,如果省略{ },则else结构永远属于离它最近的一个if结构。
    3、嵌套结构可以多层嵌套,但是一般不推荐超过3层;能用多重if结构的一般不推荐使用
          嵌套if。
     
    【switch-case】
    1、结构写法:
     var num=5;
         switch (num-3){
             case 1:
                 document.write("第一个case");
                 break;
             case 2:
                 document.write("第二个case");
                 break;
             case 3:
                 document.write("第三个case");
                 break;
             default:
                 document.write("case都不成立,执行default");
                 break;
     }
            
    2、注意事项:
    ① switch结构()中的表达式,可以是各种js支持的数据类型;
    ② switch结构在进行判断的时候,使用===判断;
    ③ case后面的表达式可以是各种数据类型,但是值要求各不相同,否则也只会执行第一
        个case。
    break作用:执行完case代码后,跳出当前switch结构;
        缺少break后果:从第一个正确的case项开始,执行后面的所有case和default;
    switch结构在进行判断的时候,只会判断一次正确答案,当遇到正确的case后,将不
        会再判断后续的项目。
    ⑥ switch结构的执行效率要比多重if快。在多路分支结构中,推荐优先使用switch。
  • 相关阅读:
    Leetcode 15 3Sum
    Leetcode 383 Ransom Note
    用i个点组成高度为不超过j的二叉树的数量。
    配对问题 小于10 1.3.5
    字符矩阵的旋转 镜面对称 1.2.2
    字符串统计 连续的某个字符的数量 1.1.4
    USACO twofive 没理解
    1002 All Roads Lead to Rome
    USACO 5.5.1 求矩形并的周长
    USACO 5.5.2 字符串的最小表示法
  • 原文地址:https://www.cnblogs.com/sin0/p/7401279.html
Copyright © 2011-2022 走看看