日期對象
獲取日期對象
? ? ? ? var date = new Date();? --沒有參數(shù)即獲取當前的時間對象
日期對象的方法
? ? ? ? 獲取當前的年 date.getYear();
? ? ? ? 獲取當前的公元年 date.getFullYear();
? ? ? ? 獲取當前的月 date.getMonth()+1;
? ? ? ? 獲取當前的日 date.getDate();
? ? ? ? 獲取當前的星期 date.getDay();
? ? ? ? 獲取當前的時 date.getHours();
? ? ? ? 獲取當前的分 date.getMinutes();
? ? ? ? 獲取當前的秒 date.getSeconds();
? ? ? ? 獲取當前的毫秒 date.getMilliseconds();
? ? ? ? 獲取當前時間戳 date.getTime();
? ? ? ? 獲取標準時區(qū)的時間年 date.getUTCFullYear();
? ? ? ? 獲取標準時區(qū)的日 date.getUTCDate();
? ? ? ? 獲取標準時區(qū)的小時 date.getUTCHours();
? ? ? ? 標準時區(qū)的日期時間字符串 date.toUTCString();
時間戳的認識
? ? ? ? 從Unix元年至今的毫秒數(shù)
? ? ? ? 其他語言時間戳(unix元年至今的秒數(shù))
? ? ? ? Unix 元年: 1970年一月一日0點0分0秒0毫秒(unix->linux)
1荔泳、很多編程語言起源于UNIX系統(tǒng),而UNIX系統(tǒng)認為1970年1月1日0點是時間紀元铃彰,所以我們常說的UNIX時間戳是以1970年1月1日0點為計時起點時間的
2舵抹、C語言的產(chǎn)生
3、時間戳應(yīng)用:法律效力 檔案管理 數(shù)據(jù)庫存儲
將時間戳轉(zhuǎn)換為標準格式
? ? ? ? var? timer = 24324343;? ? ? ? ? //從數(shù)據(jù)庫取出的時間戳
? ? ? ? var time = new Date(timer);
? ? ? ? var year = time.getFullYear(); //通過時間戳獲取年
? ? ? ? var day = time.getDay();
設(shè)置時間
? ? ? ? date.setTime(14480907809);? 使用js設(shè)置cookie的保質(zhì)期
全局對象
? ? ? ? console.log(this);
全局對象的常用方法
1鉴分、isNaN();
2哮幢、parseInt();
3、parseFloat();
4志珍、Number();
5橙垢、String(); ...等相關(guān)強制轉(zhuǎn)換函數(shù)
6、eval(); 解析執(zhí)行字符串
7伦糯、escape() 對字符串進行編碼柜某,可以在所有的計算機上讀取該字符串
8、unescape(); 字符串解碼
9敛纲、encodeURI(); 將字符串作為URI進行編碼喂击。
? ? ? ? 防止特殊字符造成URI的傳遞錯誤,一般用于頁面跳轉(zhuǎn)
? ? ? ? 不編碼的字符82個: !#@$~&*_+-,.:;=?()/0-9a-zA-Z
10淤翔、decodeURI(); 對encodeURI()進行解碼
11翰绊、encodeURIComponent();將字符串作為URI進行編碼
? ? ? ? 防止URI參數(shù)中特殊字符串造成參數(shù)讀取錯誤 用來傳遞參數(shù)
? ? ? ? 不編碼的字符有71個:!’()*-._~0-9A-Za-z
12.decodeURIComponent();解碼encodeURIComponent
錯誤處理
常見錯誤
1、未經(jīng)定義的變量
2、未區(qū)分大小寫
3监嗜、不匹配的大括號或者圓括號
4谐檀、賦值和相等(= ==) --邏輯錯誤
5、字符串的拼接+ ....細節(jié)
錯誤類型
1裁奇、SyntaxError? ? ? ? 語法錯誤
2桐猬、ReferenceError? ? ? 引用錯誤(變量未定義)
3、RangeError? ? ? ? ? 超出范圍
? ? ? ? array.length=-1;
? ? ? ? 123..toPrecision(22)
4刽肠、TypeError? ? ? 類型使用錯誤
? ? ? ? null.a();
? ? ? ? o.floor(); --object
5溃肪、URIError? EvalError? Error? 不常見
處理方法
1、避免錯誤
2音五、try..catch語句 (可以相互嵌套)
? ? ? ? try {
? ? ? ? ? ? ? ? ?throw new Error('錯');
? ? ? ? ? ? ? ? ?console.log('aaa');
? ? ? ? ? ? ? ? ?throw new SyntaxError('錯了');? ? //拋出錯誤
? ? ? ? } catch (e) {
? ? ? ? ? ? ? ?console.log(e);
? ? ? ?}
3.finally 字句
? ? ? ? try{? ? }catch{? }finally{? }
4.調(diào)試
? ? ? ? 控制臺source找到文件使用debugger調(diào)試
? ? ? ? 使用console.log()控制臺輸出調(diào)試
JavaScript學(xué)習(xí)內(nèi)容
? ? ? ? ECMAScript? 核心語法
? ? ? ? DOM? ? ? ? 文檔對象模型(html5給js更大的權(quán)限接口)
? ? ? ? BOM? ? ? ? 瀏覽器對象模型
JavaScript對象
1.內(nèi)置對象
2.自定義對象(自定義構(gòu)造函數(shù))
3.宿主對象
? ? ? ? BOM
? ? ? ? DOM
事件
? ? 事件的綁定方法
? ? ? ? 1惫撰、標準方式
? ? ? ? ? ? ? ? 一個dom元素同一個事件可以綁定多個
? ? ? ? ? ? ? ? addEventListener(Event,fn)? (非IE)
? ? ? ? ? ? ? ? attachEvent(Event,fn);? ? ? (IE)
? ? ? ? ? ? ? ? 兼容綁定
? ? ? ? ? ? ? ? if(btn.addEventListener){
? ? ? ? ? ? ? ? ? ? ? ? btn.addEventListener('click',function(){alert(1)});
? ? ? ? ? ? ? ? ? ? ? ? btn.addEventListener('click',function(){alert(2)});
? ? ? ? ? ? ? ? }else{
? ? ? ? ? ? ? ? ? ? ? ? btn.attachEvent('onclick',function(){});
? ? ? ? ? ? ? ?}
? ? ? ? 2.把事件作為元素的方法
? ? ? ? ? ? ? ? ? 同一個事件只能綁定一次,后者會覆蓋前者
dom.onclick=fn;
? ? ? ? 3.把事件作為標簽的內(nèi)部屬性
解除事件綁定
? ? 標準方式解除? --需要使用函數(shù)名放仗,匿名函數(shù)不能解除
? ? ? ? removeEventListener(event,fn);? (非IE)
? ? ? ? detachEvent(Event,fn);? (IE)
? ? 其他方式解除綁定? ? 重新定義事件
? ? ? ? dom.onclick=function(){}
? ? 自定義綁定事件函數(shù)
? ? ? ? function bindEvent(dom, event, fn) {
? ? ? ? ? ? ? ? ?if (dom.addEventListener) {
? ? ? ? ? ? ? ? ? ? ? ? ? dom.addEventListener(event, fn);
? ? ? ? ? ? ? ? ?} else if (dom.attachEvent) {
? ? ? ? ? ? ? ? ? ? ? ? ? dom.attachEvent("on"+event, fn);
? ? ? ? ? ? ? ? ?} else {
? ? ? ? ? ? ? ? ? ? ? ? ? alert("您的設(shè)備不支持事件");
? ? ? ? ? ? ? ? ?}
? ? ? ?}
自定義解除事件函數(shù)
? ? ? ? function unbindEvent(dom, event, fn) {
? ? ? ? ? ? ? ? if (dom.removeEventListener) {
? ? ? ? ? ? ? ? ? ? ? ? dom.removeEventListener(event, fn);
? ? ? ? ? ? ? ? } else if (dom.detachEvent) {
? ? ? ? ? ? ? ? ? ? ? ? dom.detachEvent("on"+event, fn);
? ? ? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? ? ? ? ? alert("您的設(shè)備不支持事件");
? ? ? ? ? ? ? ? }
? ? ? ? }