JavaScript_比较运算符,逻辑运算符, 条件语句,循环语句

比较运算符:“>”,”<”,”==”,“>=”,“<=”,”!=

  • 比较结果为 boolean 值,但凡是运算符,都是要有运算的。用到布尔值,true 或 false
    字符串的比较,比的是 ASCII 码。
    < >
    var a = "a">"b"; document.write(a); //答案是 false
    var a = 1 > 2; document.write(a); //答案是 false
    var a = 1 < 2; document.write(a); //答案是 true
    var a = "1">"8"; document.write(a); //答案是 false
    var a = "10">"8"; document.write(a); //答案 false,不是十和八比,是字符串一
    零和八比,先用开头的一和八比,比不过就不看第二位了;一样的就拿零和八比
    var a = 123; document.write(a); //答案 false
    运算结果为真实的值
    ==:等不等于
    var a = 1 == 2; //答案是说 1 等不等于 2,因为 1 肯定不等于 2,所以值为 false
    var a = NaN == NaN; //答案是 false,NaN 不等于任何东西,包括他自己
    var a = undefined == underfined; //答案是 true
    var a = infinity == infinity; //答案是 true
    var a = NaN == NaN; //答案是 false。非数 NaN 是不等于自己的
    NaN 得不出数,又是数字类型,就是 NaN
    >= <= !=:是否不等于,非等
    比较结果为 boolean 值:true 和 false

逻辑运算符::“&&”,“||”,“!

  • “&&”与运算符

两个表达式:先看第一个表达式转换成布尔值的结果是否为真,如果结果为真,那么它会看第二个表达式转换为布尔值的结果,然后如果只有两个表达式的话,只看看第二个表达式,就以返回该表达式的值了,如果第一位布尔值为 false,不看后面的,返回第一个表达式的值就可以了。运算符就是要求结果。

var a = 1 && 2; //答案 2,如果第一位 1 为真,结果就为第二位的值 2
var a = 1 && 2 + 2; //答案 4,如果 1 为真,结果就为 4
var a = 0 && 2 + 2; //答案 0
var a = 1 && 1 && 8; //答案 8,先看第一个是否为真,为真再看第二个,中途如果遇到 false,那就返回 false 的值
var a =1 + 1 && 1 – 1;document.write(a); //答案 0

如果是三个或多个表达式,会先看第一个表达式是否为真,如果为真,就看第二个表达式。如果第二个也为真,就看第三个表达式(如果为真就往后看,一旦遇到假就返回到假的值),如果第三个是最后一个表达式,那就直接返回第三个的结果。如果第一个是假,就返回第一个值,当是真的时候就往后走,一旦遇到假,就返回。

2>1 && document.write("hello"); //意思是如果 2 大于 1,那么就打印:hello,如果前面真才能执行后面的(相当于短路语句使用)。&&与运算符是有中断作用的,当短路语句使用(如果。。那么。。) 例 var data = …; //执行一个语句,会用到 data,data&&执行一个语句全用到 data
data && function(data);

  • “||”或运算符
    var num = 1 || 3; //答案 1
    var num = 0 || 3; //答案 3
    var num = 0 || false; //答案是 false

看第一个表达式是否为真,如果为真,则返回第一个值,碰到真就返回。如果第一个表达式是假,就看第二个表达式,如果第二个是最后一个,就返回第二个的值。
关注真假的说法:全假才为假,有一个真就为真

var num = 0 || false || 1; document.write(num); //答案 1
div .onclick = function(e){
非 IE 浏览器直接取 e 值
var event = e;
IE 浏览器存在 window.event;
}
写成下面这样就解决了兼容性。在所有的浏览器中都好使
div .onclick = function(e){var event = e || window.event;}

  • “!“非运算符,否的意思。

先转成布尔值,再取反

var a = ! 123;document.write(a); //答案 false。123 的布尔值是 true,取反是 false
var a = ! “”;document.write(a); //答案 true。空串””布尔值是 false,取反是 true
var a = ! !“”;document.write(a); //答案 false,取反后,再反过来,结果不变
var a = true;a =!a;document.write(a) //答案 false,自身取反,再赋值给自身

注意:被认定为 false 的值:转换为布尔值会被认定为 false 的值 undefined,null,NaN,“”(空串), 0, false

条件语句:ifif(){}else if(){}、 if <—> && 转换

  • if(条件判断){
    当条件成立时,执行里面的执行语句
    }当 if 的条件成立时,才能执行{}内的语句。
    当条件转化为布尔值,如果为 true 就执行;如果为 false 就不执行。
    if(1 < 2){document.write(“hello”);}
    if ( 1 > 0 && 8 > 9){}
    &&放在 if 中的,全真才为真,&&是并且的意思
    if ( 1 > 0 || 8 > 9){}
    ||放在 if 中是或者的意思,有一个是真就可以了
  • IF 和&&的互相转化
    if (1 > 2) {document.write.('a');}上面与右边效果完全一样 1 > 2 && document.write('a');
    &&和 II 比较常用在条件判断中。

循环语句

  • for 循环(for 循环不固定,非常灵活)
    格式 for (var i = 0; i < 10; i++) {}
    for 是关键字,()括号里面三个语句用两个分号隔开,{}里面是循环体
  • while, do while
    while 循环
    while 循环是 for 循环的简化版 for( ; ; ){},while 循环底层机制是 for 循环。
    for ( ; 只在这一部分写,前后不写 ; ){}
  • do while 循环
    do while 是不管满不满足条件都会先执行一次,再判断成不成立,如果成立才会执行
    第二次,不成立就停止 ,一般没人用。

爱上练习题

  1. 计算2的n次幂,n可输入,n为自然数。
  2. 计算n的阶乘,n可输入。
  3. 著名的斐波那契额数列:1 1 2 3 5 8输出第n项。
  4. 输入a,b,c三个数字,打印出最大的。
  5. 打印出100以内的质数。

解答:

  1. 第一道题:
<html>
    <body>
        <script>
            //计算2的n次幂,n可以输入,n为自然数
            var n = parseInt(window.prompt('input'));//从浏览器输入数
            var res = 1;
            for(var i=1; i<=n ; i++){
               res *= 2;
            }
            document.write(res);
        </script>
    </body>
</html
  1. 第二道题:
<html>
    <body>
        <script>
            //计算n的阶乘,n可以输入
            var n = parseInt(window.prompt('input'));
            if(n<=0){
               document.write("error!")
            }
            var sum = 1;    
            for(var i=n ; i>=1 ; i--){
               sum *= i;
            }
            document.write(sum);
        </script>
    </body>
</html>
  1. 第三道题目:
<html>
    <body>
        <script type="text/javascript">
            //著名的斐波那契额数列
            //1 1 2 3 5 8输出第n项
            var n = parseInt(window.prompt('input'));//用来接收输出的n行
            //定义第一个数
            var first = 1;
            //定义第二个数
            var second = 1;
            //定义第三个数
            var third;
            if(n>2){
            for(var i=0 ; i<n-2 ; i++){//循环n-2次
                third = first + second;
                first = second;
                second = third;
            }
               document.write(third);
            }else{
               document.write(1);
            }

        </script>
    </body>
</html>
  1. 第五道题目:
<html>
    <body>
        <script>
            //输入a,b,c三个数字,打印最大的
            var a = parseInt(window.prompt('input'));
            var b = parseInt(window.prompt('input'));
            var c = parseInt(window.prompt('input'));
            var max = a;
            if(b>max && b>c){
              max = b;
            }else if(c>max && c>b){
              max = c;
            }
            document.write(max);
        </script>
    </body>
</html>
  1. 第六道题目:
<html>
    <body>
        <script>
            //打印100以内的质数
            //循环100以内的数字
            var count = 0;//用来计算有几个被整除的
            var res;//表示质数
            for(var i=2 ; i<=100 ; i++){
            //什么是质数?就是只能被1和本身整除的数字
            //从i里面取到一个数,然后循环i这个数从1到本身,看看是不是只有两个数能被整除
                for(var j=1 ; j<=i ; j++){
                    if(i%j==0){
                       res = i;
                       count++;
                    }
                }
                if(count==2){//表示该数是质数
                       document.write(res+"  ");
                    }
                    count = 0;
            }
        </script>
    </body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李宸净

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值