Date對象:內部封裝一個毫秒數
創建日期對象:
var date=newDate("2015/6/9"); PPT上-僅兼容chrome
API
1. 每個分量都有一對兒get/set方法
2. 命名:年月日星期不帶s;時分秒帶s
3. 值範圍:月中的日:1-31 ;其他:0-減1
計算:1. 兩日期相減,得到毫秒數
2. 日期+/- 天小時分秒:用毫秒
3步:1.var ms=data.getTime();
2. ms=ms+/-毫秒數
3. var newDate=new Date(ms);
3. 任意分量的計算:
先取出分量值,做計算,再set回去!
date.setXXX():
1. 自動調整進制
2. *直接修改原日期對象*
如何保留原日期對象?先new出新Date對象,再set
varnewDate=new Date(oldDate.getTime());
日期格式轉換:都要自定義format(date)方法!
Number類型 API:
num.toFixed(n):按n位小數四捨五入,*返回一個字符串*!
何時使用:計算之後,顯示結果時,*最後調用toFixed方法*
vsMath.round(num):只能取整 返回一個數Number
num.toString(n):按n進制輸出數字的字符串格式
錯誤處理:
什麼是錯誤:導致程序運行停止的運行時異常狀態
什麼是錯誤處理:在出現異常狀態時,保證程序不停止的機制
如何錯誤處理:
錯誤類型:Error類型:所有錯誤對象的父類型
6中子類型:
EvalError,
RangeError:*參數*超出範圍
比如:num.toFixed(n) n<0 拋出RangeError
ReferenceError: 引用錯誤:找不到對象
比如:只要使用未聲明的變量時,都拋出ReferenceError
SyntaxError: 語法錯誤!修改源代碼就可以解決!
TypeError:錯誤的使用了類型和類型的方法!
URIError:URI錯誤
如何處理錯誤:
try{
可能出錯的代碼
}catch(err){ 只要拋出錯誤,都會創建一個Error對象
錯誤處理的代碼
1. 獲得錯誤信息:err.name 類型
2. 根據錯誤的類型,執行不同的處理
}[finally{可有可無
//程序中使用了大對象!一定要在finally中主動釋放
無論是否出錯,都必須執行的代碼
}]
能用if...else解決的問題,就不用try catch!
何時使用try catch?try catch處理的是無法預料的問題!
主動拋出異常:如何告知方法調用者出錯?
throw newError("自定義的錯誤信息")
Function對象:
1. 以聲明方式定義方法:放前放後無所謂
function 方法名(參數列表){方法體; return 返回值}
以創建對象方式定義方法:必須定義在使用之前!
2. var 方法名=new Function("參數1",...,"方法體; return 返回值")
只有聲明方式的方法定義才被提前解析!——方法聲明提前
重載:方法,根據傳入的參數列表不同,執行不同的任務
比如:function jz(money){//現金結賬:驗鈔,找零}
functionjz(cardId,pwd){
//刷卡結賬:驗證卡號,驗證密碼}
jz(300);
jz("0000655112341234","666666");
arguments對象:方法對象中保存所有參數的類數組對象
類數組對象(objectlike array):長的像數組的對象
*方法內,自動創建!直接使用!*
arguments.length:保存變量的個數
arguments[i]:訪問傳入的第i+1個變量
使用匿名函數賦值的方式定義方法:
匿名函數:沒有方法名的函數!
var compare=function(a,b){return a-b;}
鄙視題:js中方法定義的方式有幾種:3種!
A.function compare(a,b){return a-b;}
B.var compare=function(a,b){return a-b;}
C. var compare=newFunction("a","b","return a-b;")
匿名函數2個用途:
1. 回調函數:函數何時執行,程序員不需要控制!
由所在環境自動調用執行!
比較器!//var compare=function(a,b){return a-b;}
//arr.sort(compare);
arr.sort(function(a,b){returna-b;});
事件處理函數:οnclick="calc(13)"
2. 自調函數:匿名函數自己調用自己!
當函數不需要重複使用時,可使用匿名函數自調。
語法:(function(參數...){
方法體;
})(參數值...);
在函數定義位置立即執行!
閉包:函數外使用了不屬於自己的局部變量
何時使用閉包?保護局部變量