对象及日期
2024-04-09 16:15:40  阅读数 9639

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本身是一个函数,可以当作工具方法使用,将任意值转为对象。这个方法常用于保证某个值一定是对象。

如果参数为空(或者为undefined和null),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=newObject()

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

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

var obj={

    new:'jack',

    age:18,

    isGirl:true,

    likeFoods:['西瓜','冬瓜','南瓜','北瓜'],

    likeUser:[name:'czh',age;18]

}

具备增删改查的操作

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

varobj={

    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=newObject()

var obj1=newObject()

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 里面的代码执行时间要比外面的短