js三目运算符、利用死循环做案例、for循环打印星星、js打印100以内质数,js打印九九乘法表

345 阅读1分钟

一、if语句括号中的隐式类型转换

if语句括号中的值是布尔值,只有两种结果,分别是true和false。当括号中的变量是数值类型时,只要不等于0,那么就是true,if语句的条件就是真。如果为0,那么就是false,条件为假。如果变量是字符串,只要不为空,条件就是真。

var x =1;
if(x==1){}等价于if(x){}

var str = "2114";
if(str != "")等价于if(str)

二、三目运算符

语法:条件?满足时执行的代码 : 不满足时执行的代码;
案例:给小于10的数补0for(var i = 0;i < 20;i++){
    i < 10 ? '0'+ i : i;//如果i小于10,就执行'0'+i,大于10的话就直接输出i
    
   }

三、for语句中的假设法

节流阀:声明一个全局变量,赋予布尔值,要么为true,要么为false;
当满足一定条件时,改变其值,然后根据改变后的值做出一些程序处理。常常用在js动画效果的触发之间,避免用户点击太快,造成动画效果不佳。

四、break和continue的区别和用法

  1. break(直接结束循环)
  2. continue (结束本次循环,继续下次循环)
//判断质数
<script>

        //声明一个全局变量,判断这个变量是不是质数

        var num = 9;
        
        //假设法判断质数

        //声明一个布尔值,值为true,假设所有的数都是质数

        var isTrue = true;

        for (var i = 2; i < num; i++) {

            if (num % i == 0) {

                isTrue = false//当num能被它之前的任何一个数整除,那他就不是质数。

                break//只要被判断不是质数后,就可以直接结束循环了

            }

        }

        //如果上面的循环没有进入if语句,就说明这个数是质数,isTrue的值依然是true

        if (isTrue) {

            alert('判断法,判断该数是质数');

        } else {

            alert('判断法,判断该数不是质数');

        }
        
        //采用循环生死法判断

        //核心思想,当判断某数不是质数后,直接结束循环,此时循环变量的值将停留在结束时的值,如果是质数,循环不会结束,i的值就是循环最终值。

        for (var i = 2; i < num; i++) {

            if (num % i == 0) {

                break;

            }

        }

        console.log(i);

        if (num == i) {

            alert('循环生死法判断,该数是质数');

        } else {

            alert('循环生死法判断,该数不是质数');

        }

        //计数法判断

        var isZ = 1;

        for (var i = 2; i < num; i++) {

            if (num % i == 0) {

                isZ = 0;

                break;

            }

        }

        if (isZ == 1) {

            alert('计数法判断,该数是质数');

        } else {

            alert('计数法判断,该数不是质数');

        }

    </script>

五、嵌套循环

外层循环和内层循环的关系就像时针和分针的关系。时针走一次,分针走一圈等同于外层循环走一次,里层循环走一圈

1、打印星星

<script>

        //****

        //****

        //****

        //****

        for (var i = 0; i < 4; i++) {

            for (var y = 0; y < 4; y++) {

                document.write('⭐');

            }

            document.write('<br>');

        }

        document.write('<br>');

        //****

        //***

        //**

        //*

        for (var i = 0; i < 4; i++) {

            for (var y = 0; y < 4 - i; y++) {

                document.write('⭐');

            }

            document.write('<br>');

        }

        document.write('<br>');

        //*

        //**

        //***

        //****

        for (var i = 0; i <= 4; i++) {

            for (var y = 0; y < i; y++) {

                document.write('⭐');

            }

            document.write('<br>');

        }

        document.write('<br>');

        //****

        // ***

        //  **

        //   *

        for (var i = 0; i < 4; i++) {

            for (var y = 0; y < i; y++) {

                // document.write('&nbsp;&nbsp;&nbsp;&nbsp;');

                document.write('♥');

            }

            for (var z = 0; z < 4 - i; z++) {

                document.write('⭐');

            }


            document.write('<br>');

        }

        document.write('<br>');

        //   *

        //  **

        // ***

        //****

        for (var i = 1; i <= 4; i++) {

            for (var y = 0; y < 4 - i; y++) {

                document.write('♥');

            }

            for (var z = 0; z < i; z++) {

                document.write('⭐');

            }

            document.write('<br>');

        }

        document.write('<br>');

        //   *

        //  * *

        // * * *

        //* * * *

        for (var i = 1; i <= 4; i++) {

            for (var y = 0; y < 4 - i; y++) {

                document.write(1);

            }

            for (var z = 0; z < i; z++) {

                document.write(0 + '&nbsp;');

            }

            document.write('<br>')

        }

    </script>

2、打印九九乘法表

<!DOCTYPE html>

<html lang="en">

\


<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <title>九九乘法表</title>

    <style>

        span {

            display: inline-block;

            width: 80px;

            height: 30px;

            border: 1px solid;

            margin: 0 12px;

            text-align: center;

            line-height: 30px;

        }

        p span:nth-child(2n) {

            background-color: pink;

            color: #fff;

            border: 2px solid green;

        }

        p span:nth-child(2n-1) {

            background-color: green;

            color: #fff;

            border: 2px solid orange;

        }

    </style>

</head>

<body>

    <script>

        for (var i = 1; i <= 9; i++) {

            document.write('<p>')

            for (var j = 1; j <= i; j++) {

                document.write('<span>' + j + "*" + i + "=" + i * j + '</span>')

            }

            document.write('</p>')

        }

    </script>

</body>

</html>

3、输出100以内的所有质数

<script>

        var sum = 0;

        for (var i = 2; i <= 100; i++) {

            var istrue = true;

            for (var y = 2; y < i; y++) {

                if (i % y == 0) {

                    istrue = false;

                    break;

                }

            }

            if (istrue) {

                i = i < 10 ? '0' + i : i;

                if (i != '01') {

                    document.write(i + '&nbsp;');

                    sum++;

                }

            }

            if (sum == 5) {

                document.write('<br>');

                sum = 0;

            }

        }

    </script>

六、循环的特殊语法

//这是for循环的最简单写法,但是这样的程序是一个死循环程序
for(;;){
    console.log(666)
}

//下面的for循环与while语法循环类似,必须前有初始值,后有变量变化
var i = 0;
for(;i<10;){
    console.log(666);//输出的结果是十个666
    i++;
}


//以下两个代码相等

var sum = 0;
for(var i=0;i<10;i++){
    sum++;
}


for(var i=0,cont=0;i<10;i++){
    cont++;
}

七、死循环以及解决方式

for(var i = 0,cont =0;;){
var n = Math.floor(Math.random()*100);
    if(n==0){
        console.log('恭喜您用了'+i+'次,抽中了0');
        break;
    }
    i++;
}