码迷,mamicode.com
首页 > Web开发 > 详细

JS中的运算符&JS中的分支结构

时间:2017-08-20 22:43:51      阅读:431      评论:0      收藏:0      [点我收藏+]

标签:注意   判断   als   部分   优先级   逻辑运算   ext   bsp   结构   

一、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。

JS中的运算符&JS中的分支结构

标签:注意   判断   als   部分   优先级   逻辑运算   ext   bsp   结构   

原文地址:http://www.cnblogs.com/sin0/p/7401279.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!