我们都知道循环有for循环、while循环、do while循环 ,基本的循环结构都很容易理解,其中感觉嵌套循环很巧妙,特别是在一些小例题的应用上。

第一个小例题:

求1~100以内的所有质数

<script>
        // 质数
        for (var i = 2; i < 101; i++) {
            var cont = 0;
            for (var j = 2; j < i; j++) {
                if (i % j == 0) {
                    cont++;
                }
            }
            if (cont == 0) {
                console.log(i);
            }
        }
    </script>

第二个小例题:

九九乘法表

<script>
        // 乘法表
         for (var i = 1; i < 10; i++) {
            document.write("<br>")
             for (var j = 1; j < i + 1; j++) {
                 document.write(j + "*" + i + "=" + i * j + "  ");
            }
        }
    </script>

常用内置对象

1.Math对象

Math对象用来对数字进行与数学相关的运算,不需要实例化对象,可以直接使用其静态属性和静态方法,Math对象的常用属性和方法如下:

Math.abs()    计算绝对值
Math.floor()    向下取整(整数返回自身,小数返回这个小数的整数部分,负小数返回比整数部分小一的负整数)
Math.ceil()    向上取整(整数返回自身,小数返回比小数整数部分大一的整数,负小数直接去掉小数部分)
Math.random()    取0-1之间的随机小数
Math.round()    四舍五入
Math.pow(x,y)    x的y次幂
Math.sqrt()    开平方
Math.max()    取最大值
Math.min()    取最小值

小案例:使程序随机生成一个1~10之间的数字,并让用户输入一个数字,判断这两个数的大小,如果用户输入的数字大于随机数,那么提示“你猜大了”,如果用户输入的数字小于随机数,则提示“你猜小了”,一共有5次机会,如果五次都没有猜对那么程序结束,如果两个数字相等,就提示“恭喜你,猜对了”,结束程序。

// 随机数
        var sjs = Math.floor(Math.random() * 10 + 1);
        var num = parseInt(prompt("请输入数字"));
        for (var i = 0; i < 5; i++) {

            if (num > sjs) {
                alert("太大了");
                var num = parseInt(prompt("请输入数字 (你还剩" + (5 - i - 1) + "次机会)"));
            } else if (num < sjs) {
                alert("太小了");
                var num = parseInt(prompt("请输入数字(你还剩" + (5 - i - 1) + "次机会)"));
            } else {
                alert("猜对了");
                break;
            }
            if (i == 4) {
                alert("你没有机会了");
                break;
            }
        }

2.Date对象

Date对象是JavaScript的内置对象,使用之前必须先对其进行实例化(调用构造)然后才能使用其属性和方法。Date对象主要是用来处理日期以及时间。

Date对象的常用方法:
Date.parse()    返回从1970年1月1日零时整算起的毫秒数(当地时间)
Date.getFullYear()    返回Date对象的年份字段
Date.getMonth()    返回月份数(0-11),想要几月的话,需要加一
Date.getDay()    返回一周的第几天(0-6),想要星期几的话,需要加一
Date.getDate()    返回日期的“日”部分,值为1~31
Date.getHours()    返回日期的“小时”部分,值为0~23
Date.getMinutes()    返回日期的“分钟”部分,值为0~59
Date.getSeconds()    返回日期的“秒”部分,值为0~59
Date.setYear()    设定日期的“年”部分
Date.setFullYear()    设定日期的“年”部分
Date.setMonth()    设定日期的“月”部分,值为0~11。其中0表示1月,…,11表示12月
Date.setDate()    设定日期的“日”部分,值为0~31
Date.setHours()    设定日期的“小时”部分,值为0~23
Date.setMinutes()    设定日期的“分钟”部分,值为0~59
Date.setSeconds()    设定日期的“秒”部分,值为0~59

小案例:想必大家都注意到过微信朋友圈的时间,比如几分钟前发布,几小时前发布。。。

// 获取当前时间
        var dqsj = new Date();
        // // 获取发布朋友圈的时间
        var fbpyq = new Date("2022-7-2 12:29:10");
        // // 转换为毫秒
        dqsj = Date.parse(dqsj);
        fbpyq = Date.parse(fbpyq);
        // // 计算
        var time = dqsj - fbpyq;
        // // 秒
        var miao = parseInt(time / 1000);
        // // 分
        var fen = parseInt(time / 1000 / 60);
        // // 时
        var shi = parseInt(time / 1000 / 60 / 60);
        // // 天
        var tian = parseInt(time / 1000 / 60 / 60 / 24);
        // // 判断
        if (shi > 24) {
            document.write(tian + "天之前发布");
        } else if (fen > 60) {
            document.write(shi + "小时之前发布");
        } else if (miao > 60) {
            document.write(fen + "分钟之前发布");
        } else {
            document.write(miao + "秒之前发布");
        }

3.字符串

符串对象使用new String()来创建,在String构造函数中传入字符串,这样就会在返回的字符串对象中保存这个字符串。

字符串的常用方法:

String.charAt(index)    返回指定索引位置的字符,和使用索引方式获取结果一样
String.indexOf()    从前往后找,找到返回内容的索引,找不到返回-1
String.length    字符串的长度
String.slice(n,m)    抽取一个子串
String.substr(start,count)    将源字符串进行截取从start索引开始截取count个字符
String.substring(start,end)    将原字符串进行截取从start索引开始到end结束(取不到end)
String.split(切割形式)    把一个字符串分割成字符串数组
String.toUpperCase()    转大写字母
String.toLowerCase()    转小写字母