日期Date
1.Date對象
Date類型使用自UTC(國際協(xié)調(diào)時間)1970年1月1日零時開始經(jīng)過的毫秒來保存日期,Date類型保存的日期能夠精確到1970年1月1日之前或者之后的285616年.
1.獲取當(dāng)前的時間(本地的時間)
var date = new Date() //不傳參就是獲取當(dāng)前時間
2.獲取指定的時間
var date = new Date(123456) //一個參數(shù)毫秒值 將這個毫秒值去加上對應(yīng)的1970.1.1 0:0:0 var date = new Date('2000/1/1 00:00:00') //指定一個字符串 來指定對應(yīng)的時間 規(guī)定格式 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對象以四位數(shù)字返回年份 |
| getYear() | 用getFullYear()方法代替(該方法計算的日期不準(zhǔn)確) |
| getHours() | 返回Date對象的小時(0~23) |
| getMinutes() | 返回Date對象的分鐘(0~59) |
| getSeconds() | 返回Date對象的秒數(shù)(0~59) |
| getMilliseconds() | 返回Date對象的毫秒(0~999) |
| getTime() | (計算機(jī)的紀(jì)元時間為:1970年1月1日0分0秒)從紀(jì)元時間到現(xiàn)在的毫秒數(shù) |
| setDate() | 設(shè)置Date對象中的月中的某一天(1~31) |
| setMonth() | 設(shè)置Date對象中的月份(0~11) |
| setFullYear() | 設(shè)置Date對象的四位數(shù)字年份 |
| setYear() | 用setFullYear()方法代替 |
| setHours() | 設(shè)置Date對象的小時(0~23) |
| setMinutes() | 設(shè)置Date對象的分鐘(0~59) |
| setSeconds() | 設(shè)置Date對象的秒數(shù)(0~59) |
| setMilliseconds() | 設(shè)置Date對象的毫秒(0~999) |
| setTime() | 以毫秒設(shè)置Date對象 |
| toString() | 把Date對象設(shè)置為字符串(有雙引號) |
注意:這些方法針對的是Date函數(shù)所創(chuàng)建的對象誕生時的那一時分秒,年月日,它們記錄的不是當(dāng)前的時分秒,年月日。
對象Object
1.對象的概念
對象Object是一種引用數(shù)據(jù)類型,在ECMAScript中對象可以存儲變量和函數(shù)(數(shù)據(jù)和功能)
2.創(chuàng)建對象
方式一:使用new
var obj = new Object(); //new方式 obj.name = ‘張三’; //創(chuàng)建屬性字段 obj.age = 18; //創(chuàng)建屬性字段 new關(guān)鍵字可以省略 var obj = Object(); //省略了new關(guān)鍵字,不建議
方法二:字面量方式
var obj = { name:'張三', age:18 }
3.具備增刪改查的操作
查(從對象里面獲取數(shù)據(jù))通過key(屬性名)來訪問對應(yīng)的值(屬性值)
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]) //哈密瓜 對象里面嵌套數(shù)組 console.log(obj.likeUser.age) //15 對象里面嵌套對象
添加和修改(賦值操作)
//添加和修改 其實就是設(shè)置對應(yīng)的值 // 如果當(dāng)前這個key在對應(yīng)的對象里面可以找到他就修改 如果找不到就是添加 var obj2 = {name:'hello'} obj2.name = 'world' //能找到 就會覆蓋 obj2.age = 10 //找不到就會添加 console.log(obj2);
刪除操作 使用delete關(guān)鍵詞
//刪除操作 刪除里面的屬性 delete delete obj2.name //刪除obj2的name屬性 console.log(obj2);
this(關(guān)鍵詞 表示這個他是一個對象 特殊的對象會隨引用的變化而變化)
函數(shù)里面的this (哪個對象調(diào)用這個函數(shù)this就是哪個)(this存在于函數(shù)內(nèi))
全局的this 指向window的 對象里面函數(shù)的this 指向當(dāng)前對象
function sayHello(){ console.log(this); } //函數(shù)的this 指向他的調(diào)用者 誰調(diào)用這個函數(shù) this就是指向誰 //全局調(diào)用的 js的頂層對象 全局對象 window 也就是全局寫的變量 以及全局調(diào)用的方法都是window的 sayHello() //window調(diào)用的 this指向window sayHello() == window.sayHello() var a = 10 //全局變量a 相當(dāng)于window的一個屬性及屬性值 a:10 console.log(window['a']);//10 //也就意味在全局聲明的內(nèi)容都是window的內(nèi)容 //也就是全局調(diào)用的內(nèi)容里面的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屬性 } } //調(diào)用這個函數(shù) obj.sayHi() //obj調(diào)用的 this指向obj //處于對應(yīng)的對象里面的this指向當(dāng)前的對象
定時器setInterval(定時去執(zhí)行里面的代碼 執(zhí)行多次)
定時器是全局對象window上的方法,內(nèi)部函數(shù)this指向window
清除定時器clearInterval (清除定時器 傳對應(yīng)的id)
定時器的分類
* 1、重復(fù)執(zhí)行定時器
* setInterval()
* 作用
* 每隔一段時間就會去執(zhí)行指定的函數(shù),重復(fù)的執(zhí)行
*
* 語法
* setInterval(function(){
* 每隔一段時間就會執(zhí)行這里的代碼
* },時間)
* 參數(shù)
* 1、要執(zhí)行的函數(shù):當(dāng)時間到了就會執(zhí)行
* 注意:如果函數(shù)是在外面定義的,這里面調(diào)用的話只能寫函數(shù)的名字,不能加括號
* 2、時間:間隔的時間
* 單位是毫秒
* 1s=1000ms
//window.setInterval(執(zhí)行的函數(shù),執(zhí)行一次的時間,參數(shù)) 他也是異步操作 //不要在定時器聲明變量 var i = 0 //先等待再執(zhí)行 var id = setInterval(function(){ console.log('定時器執(zhí)行') i++ if(i==10){ clearInterval(id) } },1000) //清除定時器 // clearInterval(id) setInterval(function(arg){ console.log(arg); },100,'hello') //倒計時 輪播圖的動畫 動畫(js) //先走同步 再走異步
延時器setTimeout(
清除延時器clearTimeout(清除延時器 銷毀對應(yīng)的延時器)
* 作用
* 當(dāng)延遲時間到達(dá)后,會執(zhí)行指定的函數(shù),這個函數(shù)只執(zhí)行一次
* 語法
* setTimeou(function(){
* 當(dāng)時間到達(dá)后,會執(zhí)行這里的代碼
* },時間);
* 參數(shù)
* 1、要執(zhí)行的函數(shù):當(dāng)時間到達(dá)后會執(zhí)行這個函數(shù)
* 注意:如果函數(shù)是寫在外面的,在這里調(diào)用的時候只用寫函數(shù)的名字,不能加括號
* 2、時間:延遲時間
* 時間單位也是毫秒
* 1s=1000ms
* 什么時候用
* 當(dāng)需要延遲一段時間后去做一件事情,就用setTimeout 延遲執(zhí)行不同于重復(fù)執(zhí)行,延遲實行只做一次
//window.setTimeout(函數(shù),延遲的時間(毫秒值),傳遞的參數(shù)) //window是可以省略的 //延時器 延遲執(zhí)行 異步的(多線程操作 開一個線程)(同步單線程操作 順序執(zhí)行) //js引擎的解析為單線程 同步的內(nèi)容相當(dāng)于加了把鎖(同步鎖)順序執(zhí)行(一定上一次執(zhí)行完才能執(zhí)行下一個) // 異步的就是沒有鎖(不是順序執(zhí)行) console.log('hello world') setTimeout(function(){ console.log('hello') },5000) //異步的 支付的消息通知 關(guān)閉廣告 銷毀等 console.log('hello 張三') //代碼執(zhí)行順序 先同步 再異步 setTimeout(function(arg,message){ //對應(yīng)的setTimeout可以傳參數(shù) 傳遞的參數(shù)給里面執(zhí)行的函數(shù) console.log(arg,message); },1000,'我是參數(shù)','你吃飯了嗎') //參數(shù)可以任意的傳 對應(yīng)的函數(shù)內(nèi)需要用形參去接收
clearTimeout(延時器id) (清除延時器 銷毀對應(yīng)的延時器)
var id = setTimeout(function(){ //這個id是number類型 console.log('hello') },1000) clearTimeout(id)
浙公網(wǎng)安備 33010602011771號