JS相关笔记---DAY2(逻辑运算,判断,循环以及demo,在输出方面和C,java有很大不同!)

上代码块先,今天这要补充一些东西。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        console.log(0.1 + 0.2);         //结果为0.3000000000004,小数算法有问题
        console.log(12 / 10);           //这样算没问题,为1.2
        //不能直接拿浮点数来比较,如下结果为false
        console.log(0.1 + 0.2 == 0.3);        //false
        var num1 = 0, num2 = 0, num3 = 10, num4 = 10, num5 = 10;
        console.log(num1++);            //答案是0
        console.log(++num2);            //答案是1
        console.log(num3++ + 10);       //答案是20  (重),说明num3++ 在+10和表达之后
        console.log(num3);              //答案是11
        var a1 = num4++ + 1;
        console.log(a1);                //(重!)答案是11,说明变量++是在语句结束之后(先返回,后计算)
        var a2 = ++num5 + 1;
        console.log(a2);                //(重)   答案是12,说明++变量是在 语句之中(先自加计算,后返回)
        //后置++先返回值,后自加+
        console.log(0 == '0');          //true,会自动转型
        console.log(0 === '0');         //全等,要求值和类型都一样
        console.log(0 !== '0');           //全等,要求值和类型都一样(不同的写法)
        console.log(0.1 + 0.2 == 0.3);      //答案是false!!??
        console.log(0.1 + 0.9);          //答案是1
        console.log(0.1 + 0.9 !== 1);      //答案居然是false??
        console.log(0.1 + 0.9 == 1);         //答案是true,看来小数+小数==小数


        //----------------------------以上是一些运算符--------------------------------------

        console.log(3154 && 1);             //结果是1(逻辑与&的短路运算)逻辑为false会中断并输出(包括到达结尾)
        console.log(3154 && 0);             //结果是0 (重)
        console.log(0 && 3154);             //结果是0
        console.log('' && 3154);            //结果是  (啥都没有,空一行)

        // null 0 undefined '' NaN 为假(false),其余为真(true)
        console.log(1 || 3154 || 888);         //结果是1 (逻辑或||的逻辑短路运算)
        console.log(0 || 3154);         //结果是3154   遇到逻辑是true的就中断并输出

        //----------------------一个应用(上面的知识点挺重要的)-------------------------------
        var num6 = 0;
        console.log(123 || num6++);             //(短路操作)
        console.log(num6);              //num6的结果是 0 ,因为逻辑中断后不在进行运算(++num6也是)

        //-----------------------------以上是逻辑的运算以及一个应用(重)-------------------------------


        if ('0.1+0.9' == '1') {
            console.log('my3154');
        }           //结果是false(1.0也是不行)
        if ('0.1' + '0.9' == '1.0') {
            console.log("QAQ");
        }           //结果还是false(1.0也不行)
        if ('0.1' + '0.9' == 1.0) {
            console.log("HHH");
        }               //结果还是false(1.0也不行)
        if (1 == '1') {
            console.log('AAA');
        }               //大于不行,等于行,全等不行(这不废话吗?)
        if (2 < '3.1') {
            console.log('yeah');        //自动转型,永远的神
        }
        if (null == 0) {
            console.log("6324");
        }                   //false
        if (undefined == 0) {
            console.log(6325);
        }                   //false
        if (null == undefined) {
            console.log(6326);
        }                   //这怎么又成true了?(全等不相等,)

        var num7 = '0.1+0.9';
        num7 += 0;
        console.log(num7);      //结果居然是。。。。。 0.1+0.90  (字符串)

        //----------------------以上是if初见,遇到了新疑惑和旧疑惑----------------------------------
        var age = prompt('你今年多大了?');
        if (parseInt(age) >= 18) {
            alert('二块五一小时,享受吧');
        } else {
            alert('在等' + (18 - age) + '年吧~_~');
        }
        //----------------------以上是if应用,进入网吧---------------------
        var age3 = prompt('告诉我一个年份:');
        parseInt(age3);
        if (age3 % 4 == 0 && age3 % 100 != 0 || age3 % 400 == 0) {
            alert('是闰年');
        } else {
            alert('是平年');
        }
        //------------------------if应用和逻辑判断的综合应用--------------------------
        var a1 = 5 > 1 ? '是的' : '不是';           //三元表达式格式----(判断式 ? true时执行表达式:false时执行表达式;)
        console.log(a1);    //可以代替简单的if else 语句
        var a2;
        a2 = prompt('输入个数字');
        a2 = parseInt(a2) % 2;//自动转换真方便啊
        switch (a2) {               //注意,switch的case判断为全等(!==)
            case 0:
                alert('这是个偶数');
                break;          //break挺重要.
            case 1:
                alert('这是个奇数');
                break
            default:
                alert('上面的break很重要,这里不用加break了\n \t话说你为啥不输个数字啊?');         //上面的break很重要,这里不用加break了
        }                   //这个\t是什么鬼?
        //switch判断是判断后直接跳到执行语句执行,所以分支多时效率比ifelse高一点

//---------------------以上是一些三元表达式,switch以及笔记------------------------------------
        for(var i=1; i<10;i++){
            for(var j=i;j<10;j++){
                console.log(i,'X',j,'=',i*j);
            }
        }
        //------99乘法表0.1------------------------------------------
        // 采用追加字符串的方式,使得在一行中显示
        var a3 ='';
        var target='QAQ'
        for(var i=0 ; i<5;i++){
            a3 = a3 + target;
        }
        console.log(a3);
        //------------------上面的非常重要!!!!!-------------------------------------
        // var a3='';
        // for(var i=1;i<10;i++){
        //     for(var j=1;j<10;j++){
        //         var target=i+'X'+j+'='+i*j+' ';
        //         a3=a3+target;
        //         //a3='';
        //         if(j!==9){
        //             //a3+'\n';
        //             console.log(a3);
        //         }
        //     }
        // }失败的99乘法表

        var a3='';
        var target = prompt('展示一个字符吧');
        for(var i=0;i<5;i++){            //不输入or点取消都是null
            for(var j=0;j<5;j++){
                a3=a3+target;
            }
            // console.log(a3);
            // console.log('\n');
            //a3 += '\n';
            a3 = a3 + '\n';     //这个和上面那个效果一样,所以写上面那个好一点
        }
        console.log(a3);        //在js里面是先处理完毕,最后输出。学到了QaQ
    //------------------------------分割线------------------------------------
    var a3='';
    for(var i=1;i<10;i++){
        for(var j=1;j<10;j++){
            a3+=i+'X'+j+'='+i*j+'';
        }
        a3+='\n';
    }
    console.log(a3);
    //------------------------------------99乘法表ver0.2--------------------------------
    var a3='';
    for(var i=1;i<10;i++){
        for(var j=1;j<=i;j++){
            a3+=i+'X'+j+'='+i*j+' ';
        }
        a3+='\n';
    }
    console.log(a3);
    //----------------------99乘法表vver1.0----------------------------------------
    var a3='';
    var target = prompt('输入一个字符,求求了,不输入or点取消都是null');
    for(var i=0;i<9;i++){
        for(var j=0;j<i;j++){
            a3+=' ';
        }
        for(var k=0;k<9-j;k++){
            a3+=target;
        }
        a3+='\n';
    }
    console.log(a3);
    //----------------------倒三角ver0.1--------------------------------------------
    var a3='';
    var target=prompt('同上,这次试试叼叼的~');
    for(var i=0;i<11;i++){
        for(var j=0;j<i;j++){
            a3+=' ';
        }
        for(var k=0;k<11-2*j;k++){
            a3+=target;
        }
        a3+='\n';
    }
    console.log(a3);
    //---------------------倒三角ver0.2-----------------------------------------
    var a3 = '';
    var target=prompt('再给一个,这次绝对厉害!');
    for(var i=0;i<11;i++){
        for(j=0;j<i;j++){
            a3+=' ';
        }
        for(var k=0;k<11-j*2;k++){
            a3+=target;
        }
        if(k>0){
                a3+='\n';
            }
    }
    console.log(a3);
    alert(a3);          //alert也可以展示输出的结果,而且同console中的一样
    //-----------------------------倒三角ver0.3--------------------
    </script>
</body>

</html>

首先,神一般的null和undefined,简直了,有机会多问问他人。
其次,自动转型有利有弊,使用需要谨慎!
令人激动的,if,switch,for以及&&,||的用法和C几乎完全相同(说实话没看到什么不同之处)。
令人沮丧的,就是js的输出比较抽象,需要使用一种叫做增长字符串的方式来进行如写‘99乘法表’等操作,不过在练习几次以后也可以掌握,还好C在这方面下了功夫,可以有一个构思,不然一定会很痛苦~~>_<~~,加油吧。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值