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。

转载于:https://www.cnblogs.com/sin0/p/7401279.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值