日期Date

1.Date对象

      Date类型使用自UTC(国际协调时间)1970年1月1日零时开始经过的毫秒来保存日期,Date类型保存的日期能够精确到1970年1月1日之前或者之后的285616年.

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,10,5,12,15,15) //年 月 日 时 分 秒 

二.Date对象的方法

方法 描述
getDate() 从Date对象返回一个月中的某一天(1~31)
getDay() 从Date对象返回一周中某一天(0~6)
getMonth() 从Date对象返回月份(0~11)
getFullYear() 从Date对象以四位数字返回年份
getYear() 用getFullYear()方法代替(该方法计算的日期不准确)
getHours() 返回Date对象的小时(0~23)
getMinutes() 返回Date对象的分钟(0~59)
getSeconds() 返回Date对象的秒数(0~59)
getMilliseconds() 返回Date对象的毫秒(0~999)
getTime() (计算机的纪元时间为:1970年1月1日0分0秒)从纪元时间到现在的毫秒数
setDate() 设置Date对象中的月中的某一天(1~31)
setMonth() 设置Date对象中的月份(0~11)
setFullYear() 设置Date对象的四位数字年份
setYear() 用setFullYear()方法代替
setHours() 设置Date对象的小时(0~23)
setMinutes() 设置Date对象的分钟(0~59)
setSeconds() 设置Date对象的秒数(0~59)
setMilliseconds() 设置Date对象的毫秒(0~999)
setTime() 以毫秒设置Date对象
toString() 把Date对象设置为字符串(有双引号)

               注意:这些方法针对的是Date函数所创建的对象诞生时的那一时分秒,年月日,它们记录的不是当前的时分秒,年月日。

对象Object

1.对象的概念

       对象Object是一种引用数据类型,在ECMAScript中对象可以存储变量和函数(数据和功能)

2.创建对象

      方式一:使用new

  var obj = new Object();        //new方式  

         obj.name = ‘张三’;       //创建属性字段 

        obj.age = 18;        //创建属性字段

         new关键字可以省略

        var obj = Object();       //省略了new关键字,不建议

     方法二:字面量方式

var obj = {

                name:'张三',

                age:18

        }

3.具备增删改查的操作

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

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

添加和修改(赋值操作)

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

删除操作 使用delete关键词

//删除操作 删除里面的属性 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 也就是全局写的变量 以及全局调用的方法都是window的
sayHello() //window调用的 this指向window   sayHello() == window.sayHello()
var a = 10 //全局变量a 相当于window的一个属性及属性值 a:10
console.log(window['a']);//10
//也就意味在全局声明的内容都是window的内容
//也就是全局调用的内容里面的this属于window
console.log(this) //window window.onload = function(){}
var obj = {
    name:"jack",
    sayHi:function(){
        console.log(this);
        console.log(this===obj);//true
        console.log(this.name); //访问这个name属性
    }
}
//调用这个函数
obj.sayHi() //obj调用的 this指向obj
//处于对应的对象里面的this指向当前的对象

在那句声明的变量都是属于window的属性 可以通过window[属性名]进行访问

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

定时器是全局对象window上的方法,内部函数this指向window

清除定时器clearInterval (清除定时器 传对应的id

定时器的分类
             *     1、重复执行定时器
             *         setInterval()
             *         作用
             *             每隔一段时间就会去执行指定的函数,重复的执行
             * 
             *         语法
             *             setInterval(function(){
             *                 每隔一段时间就会执行这里的代码
             *             },时间)
             *         参数
             *             1、要执行的函数:当时间到了就会执行
             *                 注意:如果函数是在外面定义的,这里面调用的话只能写函数的名字,不能加括号
             *             2、时间:间隔的时间
             *                 单位是毫秒

             *                 1s=1000ms

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

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

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

             *         作用
             *             当延迟时间到达后,会执行指定的函数,这个函数只执行一次
             *         语法
             *             setTimeou(function(){
             *                 当时间到达后,会执行这里的代码
             *             },时间);
             *         参数
             *             1、要执行的函数:当时间到达后会执行这个函数
             *                 注意:如果函数是写在外面的,在这里调用的时候只用写函数的名字,不能加括号
             *             2、时间:延迟时间
             *                 时间单位也是毫秒
             *                 1s=1000ms
             *         什么时候用
             *             当需要延迟一段时间后去做一件事情,就用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)