對象及日期定時器 Date日期 日期對象的定義(使用new關鍵詞) 1.獲取當前的時間(本地的時間) var date = new Date() //不傳參就是獲取當前時間 2.獲取指定的時間 var date = new Date(123456) //一個參數毫秒值 將這個毫秒值去加上對應的197 ...
Date日期
日期對象的定義(使用new關鍵詞)
1.獲取當前的時間(本地的時間)
var date = new Date() //不傳參就是獲取當前時間
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) //年 月 日 時 分 秒
日期對象的方法
get 獲取時間
var date = new Date() console.log(date.getFullYear() );//年 console.log(date.getMonth()) //月 0-11 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()) //獲取秒鐘 0-59 console.log(date.getTime()) //獲取離1970/1/1的毫秒值
set 設置時間
// set 設置 date.setFullYear(1999,10,10) //可以同時設置月和天 date.setMonth(9,20)//可以同時設置天 date.setDate(30) //設置天 date.setHours(10,15,20,120) //可以同時設置分 秒 毫秒 date.setMinutes(10) //可以同時設置秒 毫秒 date.setSeconds(20) //可以同時設置 毫秒 date.setMilliseconds(150)//毫秒值設置
註:月份 0-11 月(獲取的月份比實際會小1) 星期天為0
其他的方法
//其他方法 var date = new Date() //轉為字元串 console.log(date.toString()); //普通字元串轉換 console.log(date.toDateString()); //以對應的日期格式進行轉換 console.log(date.toLocaleDateString()); //以本地的日期格式轉換 console.log(date.toLocaleString() );//以本地的編碼轉為string console.log(date.toTimeString()); //以對應時間時間格式轉換 console.log(date.toUTCString());//以utc格式進行轉換 //parse 格式化 轉為NaN 日期就是一個Number值 console.log(Date.parse("2012/12/12")); //以特定的格式進行轉換 得到的是一個毫秒值
對象
概述:對象是一個引用數據類型,所有引用數據類型都是對象,(使用new 關鍵詞開闢的記憶體空間都是對象空間)Array(typeof 是object)。
==比對 比對的是地址值(棧地址) === 比對的是對應倆個是否是同一個
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
對象的定義
1.字面量的形式
var obj = {} //{}表示的是對象
2.new 關鍵詞來構建對象
var obj = new Object()
對象的結構 (容器 他具備存儲數據的功能)
對象的結構是以key:value的形式體現(鍵值對的形式 key是唯一的(字元串類型) value可以是任意類型)
var obj = {name:'jack',age:18,isGirl:true,likeFoods:['西瓜','冬瓜','南瓜','哈密瓜'],likeUser:{name:'張三',age:15}}
具備增刪改查的操作
查(從對象裡面獲取數據)通過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[屬性名]進行訪問
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 (定時器 定時去執行裡面的代碼 執行多次)
clearInterval (清除定時器 傳對應的id)
//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) //先走同步 再走非同步
!!!不要再setInterval裡面套setInterval