一、循环
1.跳出循环(使用break和continue跳出循环)
break与continue的区别
- break语句跳出整个循环,循环不在继续
continue语句跳出本次循环,执行下一次循环,直到循环结束
实例:continue实例(输出1-100之间的所有偶数)
for (var i = 1; i < 101; i++) {
if (i % 2 != 0) {
continue
}
console.log(i)
}
效果:
实例:break实例(1-100内第一可以被3和7整除的数)
for (var i = 1; i < 101; i++) {
if (i % 3 == 0 && i % 7 == 0) {
console.log(i)
break
}
}
效果:
2.嵌套循环
嵌套循环执行时,先通过外层循环进入循环体,在内层循环结束后,程序会再次执行外层循环
实例:(1-100之间的质数)
//输出1-100之间的质数
//嵌套循环执行时,先通过外层循环进入循环体,在内层循环结束后,程序会再次执行外层循环
for (var i = 2; i < 101; i++) {
// console.log(i)
var count = 0; //用来被整除的次数
//当前整数i与2-(i-1)之间的整数进行取余,如果余数为0,怎当前i不是质数
for (var j = 2; j < i; j++) {
if (i % j == 0) {
count++
}
}
//如果是质数就不会进入上一个if所以count值就为0
if (count == 0) {
//输出质数
console.log(i)
}
}
效果:
2.使用嵌套循环制作99乘法表
for (var i = 1; i < 10; i++) {
// console.log(i)
for (var j = 1; j <= i; j++) {
document.write(j + "*" + i + "=" + i * j + "   ")
}
document.write("<br>")
}
效果:
二、对象
1.Math
Math.PI :圆周率
Math.max:求最大值
Math.min:求最小值
Math.random:随机数 [0,1) (大于等于0小于1)
Math.floor:向下取整(取小于该数的最大整数)
Math.ceil:向上取整(取大于该数的最小整数)
实例:(猜数字游戏)
var randow = Math.floor(Math.random() * 10 + 1);
var num = parseInt(prompt("请随机输入1-10的整数"))
for (var i = 0; i < 5; i++) {
if (num > randow) {
alert("您输入的数字太大了请重新输入")
num = parseInt(prompt("请随机输入1-10的整数,还剩" + (5 - (i + 1)) + "次机会"))
} else if (num < randow) {
alert("您输入的数字太小了请重新输入")
num = parseInt(prompt("请随机输入1-10的整数,还剩" + (5 - (i + 1)) + "次机会"))
} else {
alert("恭喜您输入正确")
break
}
}
效果:
2.Date
获取当前时间:var now = new Date()
getTime():返回毫秒
getFullYear():返回年份
getMonth():返回月份(由于月份是从0开始所以要+1:例:now.getMonth() + 1)
getDate():返回天数
getHours():返回小时
getMinutes():返回分钟
getSeconds():返回秒
由于月份是从0开始所以我们要给月份格式(日期相同)
month = month > 10 ? month : "0" + month 格式化月份
data = data > 10 ? data : "0" + data 格式化日期
实例(显示格式:2022-08-02-17:36:53)
var now = new Date()
//年
var year = now.getFullYear()
//月
var month = now.getMonth() + 1
//天
var data = now.getDate()
//小时
var hour = now.getHours()
//分钟
var min = now.getMinutes()
//秒
var sec = now.getSeconds()
//格式化月份
month = month > 10 ? month : "0" + month
//格式化日期
data = data > 10 ? data : "0" + data
//2022-08-02-17:36:53
var ti = year + "-" + month + "-" + data + "-" + hour + ":" + min + ":" + sec;
console.log(ti)
效果:
实例2:模拟朋友圈发布时间
//模拟朋友圈发不时间
//获取当前时间
var now = new Date()
//获取朋友圈发不时间
var fbtime = new Date("2022-08-02 15:20:12")
//转换成毫秒
now = Date.parse(now)
fbtime = Date.parse(fbtime)
// console.log(now)
// console.log(fbtime)
//计算时间差
var time = now - fbtime;
// console.log(time)
//转换成秒
var secondTime = parseInt(time / 1000)
//转换成分钟
var minuetsTime = parseInt(time / 1000 / 60)
//转换成小时
var minTime = parseInt(time / 1000 / 60 / 60)
//转换成天
var dataTime = parseInt(time / 1000 / 60 / 60 / 24)
console.log(secondTime)
console.log(minuetsTime)
console.log(minTime)
console.log(dataTime)
//使用分支语句,根据不同情况判断出不同结果
if (dataTime >= 1) {
console.log(dataTime + "天前")
} else if (minTime > 0 && minTime < 24) {
console.log(minTime + "小时前")
} else if (minuetsTime > 0 && minuetsTime < 60) {
console.log(minuetsTime + "分钟前")
} else if (secondTime > 0 && secondTime < 60) {
console.log(secondTime + "秒前")
}
效果)(可以更改发布时间):
2.定时器
- setInterval:按照指定的周期(以毫秒计)来调用函数或计算表达式。方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭
- 在指定的毫秒数后调用函数或计算表达式
实例:(倒计时)
var count = 5
var tiem = setInterval(function() {
if (count > 0) {
console.log(count)
count--
} else {
clearInterval(tiem)
}
}, 1000)
效果:
3.String
substring():从开始位置截取,到指定位置结束,但取不到结束位置的字符
substr():从开始位置截取,截取指定长度的字符串
concat():拼接字符到尾部
slice():slice和substring比较相似
indexOf():返回是一个字符串的第一个索引值,还可以判断某个字符是否在字符串中
replace():替换满足条件的第一个字符
实例1:(替换)
var str = "Hello world";
for (var i = 0; i < str.length; i++) {
str = str.replace("l", "*")
}
console.log(str)
效果:
实例2:(查找出现的位置)
var str = "Hello world";
for (var i = 0; i <= str.length; i++) {
if (str[i] == "l") {
console.log(i)
}
}
效果: