文章目录
- 4 hello
- 5 js书写位置
- 06 js注释与书写方式
- 07 js变量
- 08变量命名的规则与规范
- 09数据类型
- 10 检测数据类型typeof
- 数据类型转换
- 13转布尔boolean
- 运算符
- 15赋值运算符![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/12bbe0a72483cecb88ac1d2aa3de4500.png)
- 16比较运算符
- 17 逻辑运算符
- 18自增自减运算符
- 19三目运算符
- 条件分支语句
- 循环分支语句
- 30循环控制语句
- 33初识函数
- 35函数的参数
- 37函数的返回值
- ?
- 39预解析
- 40重名问题
- 41作用域
- 42变量使用规则
- 对象
- 46不同数据类型的存储
- 47数组数据类型
- 48数组基本操作
- 49冒泡排序法
- 50选择排序法
- 数组常用方法
- 51影响原数组的![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/39a5faa81e039f57b1ab955834c12862.png)
- 52不影响原数组的
- 53数组去重
- 54数组方法3
- 55字符串
- 57字符串常用
- 59 json格式字符串
- 60模板字符串
- 61数字常用方法
- 62 随机整数
- 时间对象Date
- 64时间对象常用方法
- a.getFullYear( )
- a.getFullMonth()
- a.getDate()
- a.getDay()
- a.gethours()
- a.getminutes()
- a.getseconds()
- a.getMilliseconds()
- a.getTime()时间戳
- ????![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/6db8cfdf85c4920a6f464461b05fb71a.png)
- a.setFullYear( )
- a.setMonth( )
- a.setDate( )
- a.setHours()
- a.setminutes()
- a.setSeconds()
- a.setMilliseconds()
- 65定时器
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/d1ac092c15f12947dfc55e766a620d4c.png)
4 hello
弹窗
<script>
alert("hello")
</script>
双斜杠注释
网页内
<script>
document.write("hello")
</script>
控制台
<script>
console.log("hello")
</script>
5 js书写位置
行内式
双引号内用单引号
<body>
<div onclick="alert('hello');">
点
</div>
</body>
内嵌式
添加 <script> </script>
可以放在head也可放在body(最好在body最后)
外链式
引入
<script src="路径">
</script>
引入后,原script内写的内容无效
06 js注释与书写方式
//
/* 内容*/
- 加不加分号不影响
一行内,若写多句,句间要加分号;,否则会报错
要不就换行写
07 js变量
直接初始化
<script>
var x=100;
var y=x+300;
document.write(y);
</script>
先定义后赋值
<script>
var x;
x=100;
var y=x+300;
document.write(y);
</script>
多个变量、表达式之间用逗号表示
若给y加上双引号,则输出y,而不是400
08变量命名的规则与规范
09数据类型
number:
除了以上包括浮点型(小数,,科学计数法)
输入的值最后都会输出为十进制
前缀:二进制0b,八进制0,十六进制0x
string
- 双引号内是什么就输出什么
boolean
取值
- false
- true
undefined
变量声明了,但是未赋值
也可直接写为var a=undefined;
null
为未来赋值做准备 var a =null
想赋值了直接写a=某值
10 检测数据类型typeof
<script>
var a=1e3
document.write(a)
document.write(typeof a)
</script>
<script>
var a="1e3"
document.write(a)
document.write(typeof a)
</script>
其结果本质就是字符串
<script>
var a=1e3
document.write(typeof typeof a)
</script>
<script>
var a=1e3
document.write(a)
document.write(typeof a+100)
document.write(typeof (a+100))
var b=null
document.write(b)
</script>
数据类型转换
11转数值
<script>
var a="100"
var b=Number(a)
document.write(typeof a,typeof b)
</script>
NaN也为数值类型
<script>
var a=true,c=false
var b=Number(a)
var d=Number(c)
document.write(a,typeof a,b,typeof b,d,typeof d)
</script>
<script>
var a=null,b=undefined
var c=Number(a)
var d=Number(b)
document.write(c,d)
</script>
<script>
var a="123bcd"
var c=parseInt(a)
document.write(c)
</script>
注意:严格大小写parseInt
运算法改为数值类型
通过*1;/1;-0
<script>
var a=123
var c=a-0
document.write(c,typeof c)
</script>
12转字符串
<script>
var a=123
var b=undefined
var c=null
var d=String(a)
var e=String(b)
var f=String(c)
document.write(typeof(d,e,f))
</script>
<script>
var a=123
var b=a+"1"
document.write(b)
</script>
13转布尔boolean
若双引号内有空格,则值为true
运算符
13数学运算符
<script>
document.write(1+"2"*3+4)
document.write("1"+"2"*3+4)
</script>
1+6+4
“1”“6”4拼接
15赋值运算符![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/12bbe0a72483cecb88ac1d2aa3de4500.png)
16比较运算符
17 逻辑运算符
!!表示转换为布尔值
短路
18自增自减运算符
var n=10
var m=++n + n++ + ++n
输出结果为m为35,n为13
19三目运算符
条件分支语句
20 if
21if案例
判断奇数偶数
var n=10;
if(n%2){
document.write("奇数");
}
else{
document.write("偶数");
}
输出结果为 偶数
根据0-100的数字输出成绩
var n
n=某值
if(n>=90&&n<=100){
document.write("A")
}
else if(n>=80&&n<90){
document.write("B")
}
else if(n>=70&&n<80){
document.write("C")
}
else if(n>=60&&n<70){
document.write("D")
}
else if(n>=0&&n<60){
document.write("E")
}
判断闰年
&&的优先级必||高
<script>
var n
if(n%400==0||(n%4==0&&n%100!=0)){
document.write("闰年")
}
else{
document.write("不是闰年")
}
</script>
22 switch
注意
break必需写
默认为===,数据类型和值都要一样
23switch案例
<script>
var n=9
switch (n) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
document.write("31天")
break;
case 2:
document.write("28天")
break;
case 4:
case 6:
case 9:
case 11:
document.write("30天")
break;
}
</script>
法二
注意
n=96
m=n/10=9.6
<script>
var n=96;
var m=parseInt(n/10);
switch (m){
case 9:
case 10:
document.write("A")
break;
case 8:
document.write("B")
break;
case 7:
document.write("C")
break;
case 6:
document.write("D")
break;
default:
document.write("E")
break;
}
</script>
循环分支语句
24while
注意自身改变!!!!!!!!!!!!!!!否则死循环!!!
操作台一步步执行
25while案例
<script>
var sum=0
var n=1
while(n<=100){
sum=n+sum
n++
}
document.write(sum)
</script>
<script>
var sum=1
var n=1
while(n<=3){
sum=n*sum
n++
}
document.write(sum)
</script>
26dowhile
27dowhile案例
1-100累加
<script>
var sum=0
var n=1
do{
sum+=n;
n++;
}while(n<=100)
document.write(sum)
</script>
输出结果为 5050
prompt 直到输入名字,否则一直有弹出窗口
<script>
do{
var input=prompt("请输入名字")
}while(!input)
</script>
用input变量存储
点取消确定都不会关闭弹窗,直到输入名字
28for
29for案例
累加到100
var sum=0
for(var i=1;i<=100;i++){
sum+=i
}
document.write(sum)
1000-1100的闰年
var year
for(year=1000;year<=1100;year++){
if(year%400===0||year%4===0&&year%100!==0){
document.write(year+" ")
}
}
var count=0
for(var year=1000;year<=1100;year+=4){
//year+=4提高效率
if(year%400===0||year%4===0&&year%100!==0){
document.write(year+" ")
count++
if(count%4===0){
document.write("<br>")
//每打印4个就换行
}
}
}
30循环控制语句
break
可通过控制台看执行过程,当i=3时,进入if,执行break,直接跳出for循环,终止运行
continue
31求质数
var judge=true
var n=18
for(i=2;i<=n;i++){
//改为i<=n/2增加效率
if (n%i===0){
judge=false
break
//break增加效率
}
}
if(judge)
document.write("是质数")
else
document.write("不是质数")
输出结果不是质数
只有一个变量
var n=32
for(i=2;i<=n;i++){
if (n%i===0){
break
}
}
if(i<n)
document.write("不是质数")
else
document.write("是质数")
把n换成n/2也可
32九九乘法表
for(m=1;m<=9;m++){
for(n=1;n<=m;n++){
//n<=m控制每行的式子个数
document.write(m+"*"+n+"="+m*n)
//拼接显示*和=
}
document.write("<br>")
//每输出一行,就换行
}
美化
<style>
span{
display: inline-block;
width: 70px;
}
</style>
<script>
for(m=1;m<=9;m++){
for(n=1;n<=m;n++){
document.write("<span>"+m+"*"+n+"="+m*n+"</span>")
}
document.write("<br>")
}
</script>
33初识函数
函数是一个复杂数据类型
函数定义![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/e3b0593d9dbd913c9a3ed5640a29ccd7.png)
声明式
function test1(){
document.write(“内容”)
}
赋值式
var test2=function(){
内容
}
调用函数
test1()
test3()
声明式可以先调用后定义,赋值式不可以
function prime(n){
for(var i=2;i<=n/2;i++){
if(n%i===0){
break
}
}
if(i<=n/2){
document.write(n+"不是质数")
}
else{
document.write(n+"是质数")
}
}
prime(3)
prime(68)
prime(29)
34函数实现九九乘法表
<style>
span{
display: inline-block;
width: 70px;
}
</style>
<script>
function a(){
for(m=1;m<=9;m++){
for(n=1;n<=m;n++){
document.write("<span>"+m+"*"+n+"="+m*n+"</span>")
}
document.write("<br>")
}
}
a()
a()
a()
</script>
35函数的参数
形参作用域仅在函数内部中
36函数的参数的案例n*n乘法表
<style>
span{
display: inline-block;
width: 70px;
}
</style>
<script>
function a(target){
for(m=1;m<=target;m++){
for(n=1;n<=m;n++){
document.write("<span>"+m+"*"+n+"="+m*n+"</span>")
}
document.write("<br>")
}
}
a(7)
a(4)
a(3)
</script>
若没有传入参数,则为undefined的类型,可以在for上面加上
if(target===undefined){ alert(“请传入参数”)}用以提示
或者在if中写入target=9
意为默认值为9
37函数的返回值
return后的内容不会执行
38案例
10-100内的所有质数
function prime(n){
for(var i=2;i<=n/2;i++){
if(n%i===0){
break
}
}
//截止线
if(i<=n/2){
return false
}
else{
return true
}
//上面这一块可直接换为
return i>n/2
}
var count=0
for(var n=10;n<=100;n++){
if(prime(n)){
//函数调用,此处的n与上面函数的n作用域不同
document.write(n+" ")
count++
if(count%5===0){
document.write("<br>")
}
}
}
?
why!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
function prime(n){
for(var i=2;i<=n/2;i++){
if(n%i===0){
return false
}
else{
return true
}
}
}
for(var i=1;i<=20;i++){
if(prime(i)){
document.write(i+"是质数")
}
}
39预解析
40重名问题
41作用域
全局作用域
局部作用域![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/f99c498ac8327dcfd579eb73076ec966.png)
42变量使用规则
访问规则![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/0fe08799b1c48b01147f68f0c6d4f098.png)
赋值规则
对象
43对象数据类型
创建对象![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/66ebe741c0c76db3283e930a055e2e8a.png)
var obj={
name:lucy,
age:18,
}
document.write(obj)
var obj2=new object()
obj2.name=lucy
obj2.age=18
不常规的用“a+b”=“内容”
44对象的基本操作
增
var obj{}
obj.name="内容"
obj.age=18
法二
obj [“name” ]="内容”
查
document.write("姓名是"+obj.name)
法二
document.write(obj [ “name” ]
改
obj.age=200
法二
obj【“name”】=“内容”
删
delete obj.name
法二
delete obj【“内容”】
45对象的遍历
for(let i in obj){
console.log(obj[i])
}
46不同数据类型的存储
栈区的obj相当于地址
在堆里都有自己的地址
47数组数据类型
let arr1=[a,b,c]
let arr2=[{z,b},{c,d},{e,f}]
let arr3=new array(a,b,c)
let arr4=new array(10)
48数组基本操作
长度length
可读,可写
document.write(arr1.length)
arr.length=3改变数组长度为3
也可直接改为0,清空数组
索引
let arr=["a","b","c"]
document.write(arr[0])
输出结果为a
document.write(arr[4])
输出结果为undefined
let arr=[1,2,3]
arr[4]=7
document.write(arr[4])
输出结果为7
遍历
let arr=[1,2,3]
for(let i=0;i<arr.length;i++){
document.write(arr[i])
}
输出结果为1 2 3
复制
let arr1=[1,2,3,4]
let arr2=[]
for(let i=0;i<arr1.length;i++){
arr2[i]=arr1[i]
document.write(arr2[i])
}
arr2[1]=8
document.write(arr2)
49冒泡排序法
只一次循环
let arr=[3,1,9,2]
for(let i=1;i<arr.length-1;i++){
if(arr[i]>arr[i+1]){
var temp=arr[i]
arr[i]=arr[i+1]
arr[i+1]=temp
}
}
document.write(arr)
let arr=[3,1,9,2]
for(let j=0;j<arr.length-1;j++){
for(let i=0;i<arr.length-1-j;i++){
if(arr[i]>arr[i+1]){
var temp=arr[i]
arr[i]=arr[i+1]
arr[i+1]=temp
}
}
}
document.write(arr)
输出结果1239
50选择排序法
let arr=[3,1,9,2]
for(let m=0;m<arr.length-1;m++){
let min=m
for(let n=m+1;n<arr.length;n++){
if(arr[n]<arr[min]){
min=n
}
}
let temp=arr[m]
arr[m]=arr[min]
arr[min]=temp
}
document.write(arr)
数组常用方法
51影响原数组的![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/39a5faa81e039f57b1ab955834c12862.png)
push
在数组后面追加元素、
返回值是长度
let arr=[2,5,7]
let a=arr.push(3)
document.write(arr)
document.write("返回值",a)
pop
let arr=[2,5,7]
let a=arr.pop()
document.write(arr)
document.write("返回值",a)
在最后删除元素
返回值是删除的元素
unshift
let arr=[2,5,7]
let a=arr.unshift("haha")
document.write(arr)
document.write("返回值",a)
在前面追加元素
返回值是长度
shift
前面删除元素
返回值是删除的元素
splice(a,b)
a表示从什么位置开始,b表示要删除的个数
删除
返回值是删除的元素
let arr=[2,5,7,3,0]
let a=arr.splice(2,1)
document.write(arr)
document.write("返回值",a)
document.write("<br>")
let b=arr.splice(0,2)
document.write(arr)
document.write("返回值",b)
删除了两次
增加
let arr=[2,5,7,3]
let a=arr.splice(0,0,"one")
//在0位置不删除元素,在零处的元素换为one,原来在0位的往后移
document.write(arr)
document.write("返回值",a)
document.write("<br>")
let b=arr.splice(3,0,"two","three")
document.write(arr)
document.write("返回值",b)
reverse
let arr=[2,5,7,3]
let a=arr.reverse()
document.write(arr)
document.write("返回值",a)
sort
sort接受一个回调函数
let arr=[21,15,7,3]
let a=arr.sort(function(a,b){
return a-b
})
document.write(arr)
document.write("返回值",a)
a-b为正序排列
b-a为倒叙排列
a-b如下
b-a如下
52不影响原数组的
concat串联(拼接)
let arr1=[1,2,3]
let arr2=[4,5,6]
let arr3=arr1.concat(arr2)
let arr4=arr2.concat(arr1)
document.write(arr3,"<br>",arr4)
let arr1=[1,2,3]
let arr2=[4,5,6]
let arr3=arr1.concat(arr2,[8,9],0)
document.write(arr3)
新复制方法,不影响原来内容的
let arr1=[1,2,3]
let arr3=arr1.concat()
arr3.pop()
document.write(arr1,"<br>",arr3)
join
改变原来数组的逗号化为别的符号
let arr1=[1,2,3]
let arr2=arr1.join("-")
let arr3=arr1.join("|")
document.write(arr1,"<br>",arr2,"<br>",arr3,arr1.join("$"))
slice
slice(a,b)
a,b表示位置,包头不包尾
比如1,3意为从第一位到第二位的内容
let arr=[4,5,"a","b"]
let a=arr.slice(1,3)
document.write(a)
输出结果为5,a
slice(a)
从a开始到最后
let arr=[4,5,"a","b"]
let a=arr.slice(1)
document.write(a)
slice()
实现复制
负值的位置
let arr=[4,5,"a","b"]
let a=arr.slice()
let b=arr.slice(1,-1)
document.write(arr,"<br>",a,"<br>")
document.write(b)
indexOf
检索位置
返回-1则是找不到
若有重复的元素,则只能检索到第一个个位置
可以通过lastindexOf从后往前检索
let arr=[4,5,"a","b"]
let a=arr.indexOf("a")
let b=arr.indexOf(4)
document.write(a)
document.write("<br>")
document.write(b)
53数组去重
新数组 push
let arr=[4,3,4,4,5,"a","a","b"]
let arr2=[]
for (let i=0;i<arr.length;i++){
if(arr2.indexOf(arr[i])===-1){
arr2.push(arr[i])
}
}
document.write(arr2)
利用对象
new Set
new Set只允许没有重复的数组
Array.from可以将set结构转化为数组
let arr=[4,3,4,4,5,"a","a","b"]
let set=new Set(arr)
document.write(set)
document.write("<br>")
console.log(set)
let arr2=Array.from(set)
//将set结构转换为数组结构
document.write(arr2)
54数组方法3
forEach
let arr=[4,5,"a"]
arr.forEach(function(item,index,arr){
//元素,位置,数组名
document.write(item,index,arr)
document.write("<br>")
})
map映射
let arr=[4,5,"a"]
let arr2=arr.map(function(){
return "ha"
//注意给ha 加上双引号
})
document.write(arr2)
let arr=[4,5,"a"]
let arr2=arr.map(function(item){
return item*item
})
document.write(arr2)
55字符串基本操作
let arr=[4,5,"a"]
let arr2=arr.map(function(item){
return "<li>"+item+"</li>"
})
document.write(arr2.join(" "))
filter过滤
返回值只有true和false
可以通过比较运算符灵活运用
let arr=[1,2,7,8,9]
let arr2=arr.filter(function(item){
return item>5
})
document.write(arr2)
输出结果7,8,9
对象的使用??
every每个
let arr=[63,67,91,80]
let arr2=arr.every(function(item){
return item>=60
})
document.write(arr2)
let arr3=[63,67,51,80]
let arr4=arr3.every(function(item){
return item>=60
})
document.write(arr4)
可用于判读一个学生是否挂科
some
只要一个满足就为true
find
reduce叠加
结构let arr2=arr.reduce( function(previous,item){},a)
上式中a表示初始值
prev是上一次return的结构
let arr=[1,2,3,4]
let arr2=arr.reduce( function(prev,item){
return prev+item
},0)
document.write(arr2)
输出结果为6
55字符串
length长度(只读)
下标(只读)
遍历
56案例 统计字母出现次数
let str="aaabbccccd"
let obj={}
for(let i=0;i<str.length;i++){
let key=str[i]
if(obj[key]===undefined){
//未出现过
obj[key]=1
}else{
obj[key]++
}
}
console.log(obj)
let str="aaabbccccd"
let obj={}
for(let i=0;i<str.length;i++){
let key=str[i]
if(obj[key]){
obj[key]++
}else{
obj[key]=1
}
}
console.log(obj)
57字符串常用
索引
chartAt
返回索引对应的字符
let str="abcdef"
let str1=str.charAt(0)
let str2=str.charAt(3)
document.write(str1,str2)
返回值a d
charCodeAt
返回对应的unicode编码
let str="abcde"
let str1=str.charCodeAt(0)
document.write(str1)
let arr=[]
for(let i=65;i<91;i++){
arr.push(String.fromCharCode(i))
//String.fromCharCode意为把字符串编码改为字符...??
}
document.write(arr)
indexOf
按照字符找位置
为-1就表示没有这个字符
let str="Hello"
document.write(str.indexOf("H"))
//H 别忘加双引号
document.write("<br>")
document.write(str.indexOf("l"))
//有重复的只能识别第一个
输出结果为0 2
lastindexOf
大小写转换
全部转换为大写toUpperCase
全部转换为小写tolowerCase
let str="Hello"
document.write(str.toUpperCase())
document.write("<br>")
document.write(str.toLowerCase())
截取
substr(a,b)
从a开始,截取b个
substring(a,b)
从a开始到b结束,包前不包后
slice
和上边一样
(a,b)
(a)
(a,-b)
replace(a,b)替换
a是被替换的,b是想变成的
还可用正则表达式
split分割??
把有分隔符的(或有类似分隔符的)字符串替换为数组
let str="Hello"
console.log(str.split(""))
concat拼接
trim去掉首尾空格
trimstrat(left)去掉首部空格
trimend(right)去掉尾部空格
58案例 模糊查询
数组的filter 字符串的indexOf
let arr=["aaa","abc","bc","ac"]
let a=arr.filter(function(item){
return item.indexOf("a")!==-1
//也可换为return item.indexOf("a")>-1
//都是可以查到这个字符的意思,也就是存在
})
document.write(a)
document.write("<br>")
let b=arr.filter(function(item){
return item.indexOf("b")!==-1
})
document.write(b)
????
有点懵,但用着很6
let arr=["aaa","abc","bc","ac"]
let input=prompt("请输入要查询的")
let a=arr.filter(function(item){
return item.indexOf(input)!==-1
})
document.write(a)
59 json格式字符串
JSON.parse解码
把类似对象的字符串(json)转换为对象
json是后端给前端的
let str={"name":"lucy","age":18}
//对象
document.write(str)
document.write("<br>")
let str2='{"name":"lucy","age":18}'
//字符串
document.write(str2)
let obj=JSON.parse(str2)
document.write("<br>")
document.write(obj)
console.log(obj)
JSON.stringfy
把前端对象要转换成json给后端?
name也可不加引号
60模板字符串
用反引号``
括起来的字符串可以换行
可以直接包裹<li></li>标签
61数字常用方法
保留小数位数toFixed
!!!!注意tofixed的返回类型是字符串,不能再与数字进行运算
可以先通过-0或、1或*1将其变为数字类型
let a=12.345
let b=a.toFixed(2)
document.write(b)
document.write("<br>")
let c=a.toFixed(4)
document.write(c)
Math对象!
Math.random
0-1的随机数
Math.round
四舍五入取整
Math.cell
向上取整
例如将4.46化为5
Math.floor
向下取整
将4.46化为4
Math.abs
document.write(Math.abs(-12.34))
document.write(Math.floor(-12.34))
document.write(Math.round(-12.34))
Math.sqrt( )
Math.pow
Math.max
document.write(Math.max(1,4,9))
Math.PI
62 随机整数
为了概率同,所以选择向下取整(其他或向上取整也可不过包含与范围会改变)
函数
function fn(min,max){
return Math.floor(Math.random()*(max-min))+min
}
document.write(fn(100,200))
时间对象Date
其实是个对象,but自动转为了字符串
格式
let time=new Date
document.write(time)
> (GMT+8:00意为格林秩国际标准时间+8小时,我们在东八区)
一个参数
就是毫秒数
从1970开始计时
2个参数
let time=new Date(2023,0)
document.write(time)
document.write("<br>")
let time2=new Date(2022,3)
document.write(time2)
多个参
let time=new Date(2023,0,9,19,54)
document.write(time)
字符串
这个的一月就是一月
let time=new Date("2023-1-9 19:56:02")
document.write(time)
64时间对象常用方法
a.getFullYear( )
let time=new Date()
b=time.getFullYear()
document.write(b)
结果为2023
let time=new Date()
document.write(time.getFullYear())
输出结果2023
a.getFullMonth()
取值0-11对应1-12月
a.getDate()
a.getDay()
周六为0,周一到周六为1-6
a.gethours()
a.getminutes()
a.getseconds()
a.getMilliseconds()
a.getTime()时间戳
存于后端
????![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/6db8cfdf85c4920a6f464461b05fb71a.png)
a.setFullYear( )
a.setMonth( )
a.setDate( )
没有setday(周)
a.setHours()
let a=new Date()
a.setHours(13)
document.write(a)
??????????
let a=new Date()
let b=a.setHours(13)
document.write(b)
a.setminutes()
a.setSeconds()
a.setMilliseconds()
65定时器
倒计时定时器setTimeout
setTimeout(funct(){ },时间)
只是注册
间隔定时器setInterval
每两秒执行一次
setInterval(function(){
document.write(new Date())
document.write("<br>")
},2000)
停止
clearTimeout
clearInterval
<div>
<button id="btn1">time1截止按钮</button>
</div>
<script>
let time1=setInterval(function(){
console.log(new Date())
console.log("<br>")
},1000)
console.log(btn1)
btn1.onclick=function(){
document.write("time1已清除")
clearTimeout(time1)
}
</script>
</body>
为什么不可以日期在文档里,只显示一下就没有了
距某天的倒计时
<div id="box"></div>
<script>
let targetDate= new Date("2022/6/18")
function difftime(current,target){
let miao=Math.ceil((target-current)/1000);
let day=parseInt(miao/(60*60*24));
let hours=parseInt(miao%(60*60*24)/(60*60));
let minutes=parseInt(miao%(60*60)/60);
let seconds=miao%60;
let obj={
day:day,
hours:hours,
minutes:minutes,
seconds:seconds
}
return obj
}
setInterval(function(){
let currentDate=new Date()
let time=difftime(currentDate,targetDate)
document.write=(`距离**还有${time.day}天${time.hours}时${time.minutes}分${time.seconds}秒`)
document.write("<br>")
},1000)
</script>