day8 日期、对象、定时器、延时器
一、日期
// Date 日期类 UTC 国际协调时间 从1970年1月1日8时0分开始算 可以精确到之前或之后的 285616年
// 定义日期
var date=new Date()//返回当前的时间 没有参数会返回当前的显示时间 (电脑上的)
console.log(date);
// 第二种 指定一个日期 (可以是字符串 也可以是number)
var date1=new Date("2022-03-23 10:10:10")//yyyy-MM-dd hh:mm:ss string类型
console.log(date1);
var date2=new Date(3600)//计算的就是离1970年0时0分3600毫秒的时间
// 日期对象的方法
// 关于日期的获取和设置
// 获取以get开头 设置以set开头
var currdate=new Date()
// 获取年
currdate.getFullYear()//获取当前本地时间的年份
// 获取月
currdate.getMonth()//1-11 获取当前月份 0是1月 11是12月
// 获取日
currdate.getDate()//获取当月的第几日
currdate.getDay()//获取星期的第几天 星期天是第一天 从0开始算 星期天是0
// 获取时
currdate.getHours()//获取小时 24小时制 12点就是12 24点就是0
// 获取分
currdate.getMinutes()//获取分钟
// 获取秒
currdate.getSeconds()//获取秒钟
// 加了UTC就是获取utc时间 没有加就是获取本地时间
// 时间戳 一般作为唯一标识(有些时候数据量过大,我们还会在后面加随机数)
currdate.getTime()//获取距离1970年1月1日0时0分0秒的毫秒值
// getTime()获取的时间是离1970年
currdate.getMilliseconds()//获取毫秒位的毫秒值 不可以大于等于1000
// string方法
currdate.toDateString()//把对应的日期(年月日)按照对应的格式转换位string类型(指定好的无法更改)
currdate.toTimeString()//把对应的时间(时分秒)按照对应的格式转换位string类型(指定好的无法更改)
// local本地
currdate.toLocaleDateString()//把本地日期转换 使用/
currdate.toLocaleTimeString()//把本地时间转换 使用:
currdate.toLocaleString()//本地时间转换位string
currdate.getTimezoneOffset()//返回时区
currdate.toString()//转为字符串
// 设置方法 date是可变的 set
// 设置年
currdate.setFullYear()
// 设置月
currdate.setMonth(10)//设置为10 是11月
// 设置日
currdate.setDate()
// 设置时
currdate.setHours()
// 设置分
currdate.setMinutes()
// 设置秒
currdate.setSeconds()
currdate.setTime()//设置离1790年1月1日8时0分0秒的时间
二、对象
// 什么是对象 对象是一种引用数据类型
// 对象也是一个容器 里面可以存储对应的属性
// 定义对象 使用new关键词定义
// 对象名.属性名=值
var obj=new Object() //obj就是一个对象 但是这个对象没有具备任何属性
// 指定属性储存
obj.name="张三"
obj.age=18//将18赋值给1obj的age属性
// 第二种方式 使用字面量 在{}里面使用键值 在{}里面不可以使用=
var obj1={//{}表示的是对象的字面值 这里面存储是以键值对的形式 键 值 多个键值对之间使用逗号隔开
name:"张三",
age:14
//获取对象的属性值 对象名.属性名
}
// 对象数组 他是一个数组里面存放的是对象
// 数组对象 对象 这个对象是一个数组
var arr=[]//数组对象
var objarr=[{
name:"王五"
}]//对象数组 里面存放的是对象
// 核心区别里面存放的数据是否是对象 是对象就是对象数组 不是对象就是数组对象(普通数组)
// 关于对象数组的访问 外层是访问数组 里层是访问对象
objarr[0].name
var obj1={
users:[
{
name:"张三"
},{
name:"李四"
},{
name:"王五"
},
]
}
console.log(obj1.users[1].name);//怎么访问李四 看对象还是数组 对象用对象名.属性名 数组使用下标
// 还可以使用对象名[属性名] 属性名必须是字符串 来访问对应对象的属性
// 对象可以存放各种数据类型
var objA={
name:'张三',
age:14,
iseat:true,
run:function(){
console.log("我在跑步");
}
}
// 调用对象的方法
objA.run()
// 使用delete关键词删除属性
delete objA['age']
delete objA.iseat
三、定时器、延时器
// 定时器 在一定时间内执行一次 循环执行 不会停
// 第一个参数是执行的方法 可以传入function 也可以传入function的名字必须带()
// 第二个参数是执行一次的时间 为毫秒值
// 第三个参数为参数数组(不用写)
var i=0
var id=setInterval(function(){
i++
console.log("你好");
if(i==10){
// 清除定时器 传入的值为你需要清除定时器的id
//当你的i值为10的时候 自动清除你的定时器
clearInterval(id)
}
},1000)//1000的意思就是1秒钟执行一次 定时器不会自动停止
// 一般会在内部关闭对应定时器 来防止死循环
// 一般可以用来做一些 动画效果
// setInterval是异步 不遵从顺序流 不管其他的是否运行结束 我照样运行
// 同步机制 必须等待上一个操作完成 才能执行下一个操作 按照一个流程走
// 异步机制 不管上一个是否走完 照样运行
// setTimeout 是执行一次 延迟执行 第一个参数必须是function 也是异步的
// 区别 一个执行一次 一个执行多次

浙公网安备 33010602011771号