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(参数...){
方法体;
})(参数值...);
在函数定义位置立即执行!
闭包:函数外使用了不属于自己的局部变量
何时使用闭包?保护局部变量