嵌套循环、常用内置对象

一、嵌套循环

for循环的嵌套就是一个大的for循环里面嵌套着一个或是多个小的for循环

1、嵌套for 循环语法结构:

for(外层初始化变量 ; 外层的条件表达式 ; 外层的更新表达式) {

         for(里层的初始化变量 ; 里层的条件表达式 ; 里层的操作表达式) {

                 // 执行语句

        }

}

案例:

 // 2.输出1-100之间的所有偶数

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

            if (i % 2 != 0) {

                continue

                // break

            }

            console.log(i)

        }

/* break语句和continue语句的区别:

            break语句跳出整个循环,循环不在继续

            continue语句跳出本次循环,继续执行下一次循环,直到循环结束

            4的因数:1、2、4、

            6的因数:1、2、3、6、

            8的因数:1、2、4、8、

        */

        //求n的因数:

        var n = 16

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

            if (n % i == 0) {

                console.log(i)

            }

        }

// 请输出100以内的所有质数(是指一个大于1的自然数,除了1和它自身外,

        // 不能被任何数进行整除的自然数整除,)

        // 嵌套循环执行时,先通过外层循环进入循环体,在内层循环结束后,程序会再次执行外层循环。

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

            var count = 0; //又来储存被整除的数

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

                // 将当前整数i与2-(i-1)之间的整数进行取余,如果余数为零,则当前整数不是质数。

                if (i % j == 0) {

                    count++

                }

            }

            if (count == 0) {

                console.log(i)

            }

        }

// 九九乘法表

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

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

                document.write(j + '×' + i + '=' + i * j + "\t");

            }

            document.write("<br>");

        }

二 、常用内置对象

        JavaScript中的对象分为3种:内置对象、浏览器对象、自定义对象

        JavaScript 提供多个内置对象:Math/Array/NumberlString/Boolean...

1、 Math对象:

        Math对象不是构造函数,它具有数学常数和函数的属性和方法,都是以静态成员的方式提供跟数学相关的运算来找Math中的成员(求绝对值,取整)

        与其他全局对象不同的是,Math 不是一个构造器。Math 的所有属性与方法都是静态的。引用圆周率的写法是 Math.PI,调用正余弦函数的写法是 Math.sin(x),x是要传入的参数。Math的常量是使用JavaScript 中的全精度浮点数来定义的。

常用属性和方法:

// Math对象

        console.log(Math.PI)

            // 求出最大值

        console.log(Math.max(30, 20, 50, 100))

            // 求出最小值

        console.log(Math.max(30, 20, 50, 100))

            // 随机数[0,1]

        console.log(Math.random())

            // Math.random()

        var floor = Math.floor(3.8) //向下取整

        console.log(floor)

        var ceil = Math.ceil(3.8) //向上取整

        console.log(ceil)

            // 随机出1-10之间的任意整数

            // [0,1]

        console.log(Math.floor(Math.random() * 10 + 1))

            //Math.round()四舍五入

        console.log(Math.round(4.2)) //4

        console.log(Math.round(4.7)) //5

        console.log(Math.pow(3, 3))

 

案例:

// 猜数字游戏

        // 随机产生一个1-10之间的任意整数

        var random = Math.floor(Math.random() * 10 + 1)

            // 输入一个数

            // var num = parseInt(prompt("请输入一个1-10之间的整数:"))

        var count = 0;

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

            num = parseInt(prompt("请输入一个1-10之间的整数:"))

            if (num > random) {

                count++

                alert("你输入的数字太大了,您已经猜错了" + count + "次了,还剩余" + (5 - count) + "次机会!请重新输入。")

            } else if (num < random) {

                count++

                alert("你输入的数字太小了,您已经猜错了" + count + "次了,还剩余" + (5 - count) + "次机会!请重新输入。")

                    // num = parseInt(prompt("请输入一个1-10之间的整数:"))

            } else {

                alert("恭喜你猜对了")

                break

            }

        }

2、 Date对象

        创建Date实例用来处理日期和时间。Date对象基于1970年1月1日(世界标准时间)起的毫秒数。

 //获取当前时间,UTC世界时间,距1970年1月1日(世界标准时间)起的毫秒数

var now = new Date(;

console.log(now.valueof();//获取距1970年1月1日(世界标准时间)起的毫秒数

/* Date构造函数的参数

1.毫秒数1498099000356                      new Date(1498099000356)

2.日期格式字符串"2015-5-1'                  new Date( '2015-5-1')

3.年、月、日......                                   new Date(2015,4,1)1/月份从0开始

*/

1)、常用属性和方法

 var now = new Date()

        console.log(now)

            // 2022-08-02

        var year = now.getFullYear()

        var month = now.getMonth() + 1

        var date = now.getDate()

        // 格式化月份

        month = month > 9 ? month : "0" + month

            // 格式化日期

        date = date > 9 ? date : "0" + date

        var time = year + "-" + month + "-" + date

        console.log(time)

        

 // 模拟一个朋友圈

        // Date.parse("2022-8-1 12:35:09")

        // 获取到当前时间

        var now = new Date()

            // 获取发布朋友圈的时间

        var fbtime = new Date("2022-8-1 12:35:09")

        // 转换成毫秒

        now = Date.parse(now)

        fbtime = Date.parse(fbtime)

            // console.log(now)

            // console.log(fbtime)

            // 计算时间差

        var time = now - fbtime

            // 转换成秒

        var secondTime = parseInt(time / 1000)

            // 转换成分钟

        var minutesTime = parseInt(time / 1000 / 60)

            // 转换小时

        var hoursTime = parseInt(time / 1000 / 60 / 60)

            // 转换成天数

        var daysTime = parseInt(time / 1000 / 60 / 60 / 24)

        console.log(secondTime)

        console.log(minutesTime)

        console.log(hoursTime)

        console.log(daysTime)

            // 分支结构判断,根据不同的情况输出不同的结果

        if (daysTime >= 1) {

            console.log(daysTime + "天以前")

        } else if (hoursTime > 0 && hoursTime < 24) {

            console.log(hoursTime + "小时以前")

        } else if (minutesTime > 0 && minutesTime < 60) {

            console.log(minutesTime + "分钟以前")

        } else if (secondTime > 0 && secondTime < 60) {

            console.log(secondTime + "秒以前")

        }

2、拓展:定时器

         setInterval(code,millisec,lang)∶按照指定的周期(以毫秒计)来调用函数或计算表达式。方法会不停地调用函数,直到clearlnterval()被调用或窗口被关闭。

         . setTimeout(code,millisec,lang)︰在指定的毫秒数后调用函数或计算表达式。

 var num = 0

        var timer = setInterval(function() {

                if (num < 5) {

                    console.log(++num);

                } else {

                    clearInterval(timer)

                }

            }, 100)

var count = 0

        var timer = setInterval(function() {

            if (count < 5) {

                count++

                console.log(count)

            } else {

                clearInterval(timer)

            }

        }, 100)

 

var count = 5

        var timer = setInterval(function() {

            if (count > 0) {

                console.log(count)

                count--

            } else {

                clearInterval(timer)

            }

        }, 100)

 

3、string对象

        string全局对象是一个用于字符串或一个字符序列的构造函数。

常用属性和方法:

 

var str = "Hello World"

            // [2,4)substring(): 从开始位置截取,到指定位置结束,但取不到结束位置的字符

        console.log(str.substring(2, 4))

            // substr():从开始位置截取,截取指定长度的字符串。

        console.log(str.substr(2, 5))

            // concat():拼接字符串,等效于+。

        console.log(str.concat("aaa"))

            // slice()

        console.log(str.slice(1, 3))

            // indexOf():返回的是一个字符串的索引值,

            // 还可以用于判断某个字符是否存在于某个字符串中

        console.log(str.indexOf("a"))

            // 要将str中的l全部替换成*

            // replace():替换的是满足条件的第一个字符

        console.log(str.replace("l", "*"))

 

// 将str = "Hello World"中的"1"全部替换成"*"

        var str = "Hello World"

            // str = str.replace("l", "*") //He*lo World

            // str = str.replace("l", "*") //He**o World

            // str = str.replace("l", "*") //He**o Wor*d

        for (var i = 0; i < str.length; i++) {

            str = str.replace("l", "*")

        }

        console.log(str)

 // 查找一个字符串中某个字符所有出现的位置

        var str = "Hello World"

            // 简单的方法

        for (var i = 0; i < str.length; i++) {

            // console.log[i]

            if (str[i] == "l") {

                console.log(i)

            }

        }

 

猜你喜欢

转载自blog.csdn.net/m0_68618659/article/details/126126350