【对象及日期】

这篇博客详细介绍了JavaScript中的Date对象,包括如何获取和设置日期,以及各种日期方法的使用。此外,还讲解了JavaScript对象的基础知识,如创建、访问和修改对象属性,以及this关键字的作用。同时,提到了全局变量this的指向以及setTimeout和setInterval的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对象及日期

Date日期

日期对象的定义(使用new关键词)

1、获取当前的时间(本地的时间)

var date = new Date()//不传参 获取当前的时间

2、获取指定的时间

var date = new Date(123456)//一个参数毫秒值 将这个毫秒值加上对应的1970.1.1 0:0:0
var date = new Date('2000/1/1 00:00:00')//指定一个字符串 来指定对应的时间 规定格式
var date = new Date(2000,8,8,12,15,15)//年 月 日 时 分 秒

日期对象的方法

get获取时间

// get获取的方法
// 年 月 日 时 分 秒 星期 对应的时间挫(毫秒值 离1970/1/1的毫秒值)
var date = new Date()
console.log(date.getFullYear());    //年
console.log(date.getMonth() + 1);   //月只有0-11 所以+1
console.log(date.getDate());        //一个月中的第几天
console.log(date.getDay());         //一个星期中的第几天 星期天是第一天 0
console.log(date.getHours());       //获取时间小时 24为0 0-23
console.log(date.getMinutes());     //获取时间分钟 60为0 0-59
console.log(date.getSeconds());     //获取时间分钟 60为0 0-59
console.log(date.getTime());        //获取时间挫 离1970/1/1的毫秒值
//时区的偏移
console.log(date.getTimezoneOffset());

set设置时间

//set设置
date.setFullYear(1888, 8, 18) //可以同时设置年月日
console.log(date);
date.setMonth(8, 28) //可以同时设置月日
console.log(date);
date.setDate(8) //设置日
console.log(date);
date.setHours(18,8,58) //可以同时设置时分秒
console.log(date);
date.setMilliseconds(188) //设置毫秒
console.log(date);

重点月份0-11月(获取的月份比实际会小1)星期天为0

其他的方法

var date = new Date()
//转为字符串
console.log(date.toString()); //普通字符串转换
console.log(date.toDateString()); //以特定的格式显示星期几、 月、 日和年
console.log(date.toTimeString()); //以特定的格式显示时、 分、 秒和时区
console.log(date.toLocaleDateString()); //以特定地区格式显示年、 月、 日
console.log(date.toLocaleTimeString()); //以特定地区格式显示时、 分、 秒
console.log(date.toUTCString()); //以特定的格式显示完整的 UTC 日期: 年, 月, 日, 时, 分, 秒。

//parse 格式化 
console.log(Date.parse("2015|08|24"));//转为NaN 日期就是一个Number值
console.log(Date.parse("2015-08-24"));//得到毫秒值 离1970/1/1
//得出2015年8月24日离现在的时间
var current = new Date()
var old = new Date(2015,8,24)
console.log(current-old);

对象

概述:对象是一个引用数据类型,所有引用数据类型都是对象,(使用new关键词开辟的内存空间都是对象空间)Array(typeof是object)。

==比对 比对的是地址值 ===比对 比对的是对应俩个是否是同一个

Object本身是一个函数,可以当作工具方法使用,将任意值转为对象。这个方法常用于保证某个值一定是对象。

如果参数为空(或者为undefinednull),Object()返回一个空对象。

var obj = Object();
// 等同于
var obj = Object(undefined);
var obj = Object(null);

obj instanceof Object // true
//将undefined和null转为对象,结果得到了一个空对象obj。

对象的定义

1、字面量的形式

var obj = {} //{}表示的是对象

2、new观念检查来构建对象

var obj = new Object()

对象的结构(容器 他具备存储数据的功能)

对象的结构是以key:value的形式体现(键值对的形式 key是唯一的 value可以是任意类型)

var obj = {new:'jack',age:18,isGirl:true,likeFoods:['西瓜','冬瓜','南瓜','北瓜'],likeUser:[name:'czh',age;18]}

具备增删改查的操作

查(从对象里面获取数据)通过key(属性名)来访问对应的值(属性值)

var obj = {
            name: 'jack',
            age: 18,
            isGirl: true,
            likeFoods: ['西瓜', '冬瓜', '南瓜', '北瓜'],
            likeUser: {name:'czh', age:18}
        }
        console.log(obj.name) //第一种访问
        console.log(obj['name']) //第二种访问
        console.log(obj.likeFoods[3]) //南瓜 对象里面嵌套数组访问
        console.log(obj.likeUser.age) //15 对象里面嵌套对象访问

添加和修改(赋值操作)

//添加和修改 其实就是设置对应的值
//如果当前这个key在对应的对象里面可以找到他就修改 如果找不到就是添加
var obj2 = {
name: 'hello'
}
obj2.name = 'wolrd' //能找到 就会覆盖
obj2.age = 10 //找不到就会添加
console.log(obj2);

删除操作 使用delet关键词

//删除操作 删除里面的属性 delete
delete obj2.name //删除obj2里面的name
console.log(obj2);

this(关键词表示这个他是-个对象特殊的对象会随引用的变化而变化)

函数里面的this (哪个对象调用这个函数 this就是哪个) (this存在于函数内)

全局的this 指向window的 对象里面函数的this 指向当前对象

function sayHello() {
    console.log(this)
}
//函数的this指向他的调用者 谁调用这个函数 this就是指向谁
//全局调用的 js的顶层对象 全局对象 window 也就是全局写的变量 以及全局调用的方法 都是widow的
sayHello() //window调用的 this指向window    sayHello() == window.sayHello
var a = 10 //全局变量a 相当于window的一个属性及属性值 a:10
console.log(window['a']); //10
//也就意味着 在全局声明的内容都是window的内容
//也就是说 全局调用的内容里面的属于window
console.log(this); //window
var obj = {
    name: "jack",
    sayHi: function () {
        console.log(this); //this指向obj
        console.log(this == obj); //true
        console.log(this === obj); //true
        console.log(this.name); //访问自身name属性
    }
}
//调用这个函数
obj.sayHi() //obj调用的 this指向obj
//处于对应的对象里面的this指向当前的对象

在全局声明的变量都属于window的属性 可以通过window【属性名】进行访问

var obj = new Object()
var obj1 = new Object()
var obj2 = {}
var obj3 = {}
console.log(obj==obj1)	//false
console.log(obj==obj2)	//false
console.log(obj2==obj3)	//false
console.log(obj2=={})	//false

window的俩个方法

延时器

setTimeout(延时器 延迟执行里面的代码 只执行一次)

//window.setTimeout(函数,延迟的时间(毫秒值),传递的参数)	//window是可以省略的
//延时器 延迟执行 异步的(多线程操作 开一个线程)   (同步单线程操作 顺序执行)
//js引擎的解析为单线程  同步的内容相当于加了一把锁(同步锁)顺序执行(一定是上一次执行完才能执行下一个)
//异步的就是没有锁(不是顺序执行)
console.log('hello world');
setTimeout(function () {
    console.log('hello')
}, 5000) //异步的 可以做支付的消息通知 可以做关闭广告 垃圾弹窗 销毁等
console.log('hello 张三');
//代码执行顺序 先同步 再异步

setTimeout(function (arg, message) { //对应的setTimeout可以传递参数 传递参数给里面执行的函数
    console.log(arg, message);
}, 1000, '我是参数', '你吃饭了吗') //参数可以任意的传 对应的函数内需要用形参去接收

clearTimeout(延时器id)(清除延时器 销毁对应的延时器)

var id = setTimeout(function(){//这个id是number类型
	console.log('hello')
},1000)
clearTimeout(id)

定时器

setInterval(定时器 定时去执行里面的代码 执行多次)

clearIntval(清除定时器 传对应的id)

//window.setInterval(执行的函数,执行一次的时间,参数)他也是异步的
//不要在定时器内声明变量 因为会无限执行
var i = 0
var id = setInterval(function () {
    console.log('定时器执行')
    i++
    if (i == 10) {
        //清除定时器
        clearInterval(id)
    }
}, 1000)
setInterval(function(arg){
    console.log(arg);
},100,'hello')
//倒计时 轮播图的动画 任意动画(js)
//先走同步代码 再走异步代码

不要再setIntval里面套setIntval

如果setIntval套了setIntval 里面的代码执行时间要比外面的短

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值