日期对象
日期对象就是用于描述对应的日期时间的对象。Date日期事件对象主要有的操作是设置时间和获取时间
声明
new关键词声明的注意事项
- 使用new关键词构造的都是对象(引用数据类型)
- new关键词后面接的是对应的构造函数
- 构造函数就是用于构造对象的函数(大写字母开头)
使用无参构造说明
var date = new Date() console.log(date)
传入一个数值(毫秒值)
有参构造
传入一个数值 (他会认为是毫秒值 将这个毫秒值转换为当前的时间 加上初始时间 (格陵兰治时间 1970/1/1 00:00:00))
var date = new Date("2013/12/10 10:10:10")
console.log(date)
传入一个字符串(对应格式的字符串)
传入一个字符串 它会认为是对应的显示格式 (y表示年 m表示月 d表示天 h表示小时 M表示分钟 S表示 秒钟)
传入多个数值(根据年月日时分秒的顺序)
传入多个数值(最少两个) 年 月 日 时 分 秒 传入一个字符串的时候如果格式不对或者超出就会出现NaNInvalid Date 如果对应的在初始化时间的时候 传入的值超出了范围 他会默认为向上+1
注意事项
- 如果传入的是多个参数的数值,那么对应的月份取值为0-11,超出范围会自动向上进1
- 如果传入的是字符串,那么格式必须按照要求来,如果格式不正确或对应的超出范围那么就会显示为Invalid Date
- 如果传入一个数值,那么他会认为是毫秒值,会在1970年1月1日0时0分0秒的基础上加上这个毫秒值
- 如果是无参构造 那么获取本地的显示时间
日期对象的方法
- 获取日期时间(get)
- getFullYear 获取年
- getMonth 获取月
- getDay 获取星期几
- getDate 第几天
- getHours 获取小时
- getMinutes 获取分钟
- getSeconds 获取秒钟
- getMilliseconds 获取毫秒值
- getTime 获取时间戳
- getTimezoneOffset 获取时区的偏移分钟
- getUTCHours 获取utc的相关小时
设置日期对象(set)
- setFullYear 设置年
- setMoth 设置月
- setDate 设置天
- setHours 设置小时
- setMinutes 设置分钟
- setSeconds 设置秒钟
- setMilliseconds 设置毫秒值
- setTime 设置离格陵兰治时间的毫秒值
- setUTCHours 设置utc的小时
转义字符串的相关方法
- toString 转为字符串
- toLocalString 转为本地格式的字符串
- toDateString 将对应的日期转为字符串
- toTimeString 将对应的时间转为字符串
- toLocaleDateString 将对应的日期转为本地格式的字符串
- toLocaleTimeString 将对应的时间转为本地格式的字符串
- toISOString 以-进行连接格式的字符串
- toUTCString 转为utc时间字符串
- toJSON 利用JSON.stringify方法来进行转换
静态方法
属性
// length 函数的形参个数
console.log(Date.length)
// name 函数的名字
console.log(Date.name)
方法
// UTC 传入对应的日期时间返回离格林兰治时间的毫秒值
console.log(Date.UTC(2000,10))
// now 获取当前时间离格林兰治的毫秒值
console.log(Date.now())
// parse 传入一个日期时间字符串 返回离格林兰治的毫秒值
console.log(Date.parse('1990/1/2 00:00:01'))
console.log(Date.parse('nnm你好'))
Date.now()获取当前时间的时间戳
Date.parse()传入字符串返回时间戳
注意事项
两个日期比较的时候或者运算的时候会自动转为对应的时间戳
第三方js库
第三方js库(相当于别人封装好的js内容,你只要调用就好了)
moment.js 专门用于操作对应的日期时间的js库
概述
在JavaScript中解析。校验、操作、显示日期和时间的js库
monment产生一个moment对象
// YY表示年 M表示月 D表示日期 d表示星期 h表示小时 m表示分钟 s表示秒
// 格式化日期
console.log(moment().format('yyyy'))
console.log(moment().format('yyyy年MM月DD日 hh:mm:ss a'))
// 相对日期
console.log(moment("20120409","YYYYMMDD").fromNow())//11年以前
console.log(moment().startOf('day').fromNow())//18小时以前
console.log(moment().endOf('day').fromNow())//6小时以后
// 多语言环境支持
console.log(moment.locale())
moment相关方法
- format格式化 (Y年M月D天h表示小时m表示分钟 s表示秒钟d表示星期几)
- fromNow返回相对当前的时间
- add添加
- subtract减少
- startOf什么时候开始的
- endof什么时候结束
- calendar日历方法
定时器 setInterval 定时执行 无限循环执行 需要手动消除
从1数到100
// var i = 1
// var time = setInterval(function(){
// console.log(i)
// i++
// if(i==100){
// clearInterval(time)
// }
// },10)
定时器必须关闭不然会一直占用内存(内存泄漏(一个内存空间一直占用没有得到释放而这个空间又没有被使用)))
清除定时器
清除定时器里面传入定时器的标识id这个id是一个数值
clearInterval(time) 同步(队列) 同步比异步先执行﹐异步(多个队列) js引擎只有一个
延时器 setTimeout 延时执行 只执行一次
var time = setTimeout(function(arg){
console.log(arg)
clearTimeout(time)
},100,'你好')
js引擎执行顺序
- 定时器和延时器都是异步的,js引擎优先处理同步内容
- js引擎和gui渲染线程是互斥的(不能同时执行)
对象
-
对象其实就是一个应用数据类型的容器,主要存储在堆中,所有被new的都是对象。所有的应用数据类型都是对象类型(万物皆对象)
-
对象中的数据存储为key:value(键值对)
对象的声明
字面量声明
var obj={}没有内容的对象
var obj={name:"jack"}有内容的对象
new关键词声明
var obj = new Obiect()
对象内容的存储及访问
对象中是以key:value进行存储 访问通过key来访问value
内容存储的形式
var obj = {name:'rose'} //key为name value为rose
//访问通过key来访问value
//对象名\[key的字符串]
console.log(obj\['name']) //访问key为name的值 rose
//通过对象名.对象的key来访问
console.log(obj.name) //访问key为name的值 rose
//给对象中的属性进行赋值操作也是对应的添加存储的方式
obj.age = 18 //添加了一个age的属性 它的值为18
obj\['sex'] = '女' //添加一个sex的属性 它的值为女
对象中内容的访问
- 通过对象名key的字符串访问
- 通过对象名key访问