[转]javascript Error、Function、Boolean、Number原生类型的扩展
Error原生类型
表示错误对象
--EvalError,URLError,RangeError,etc.
捕获方式
--try{ throw new Error()}catch(e){}
--理论上可以throw出任意对象
Error对象IE和FireFox公有属性
--message:错误消息
Error浏览器特定属性
IE:
--description :同message属性
--number:错误编号,只有脚本引擎抛出的错误才有属性
FireFox:
--fileName:创建错误的文件
--lineNumber:创建错误对象的行号
--stack:创建错误时的堆栈信息
Error原生类型的扩展
Error.create(message,errorinfo)方法
--创建新的Error对象
--将Error对象的message属性设置为true
--将errorinfo上的信息附加到Error对象
Error.prototype.popStackFrame()方法:
--为Error对象整理出更优雅直观的信息(lineNumber,stack)
--对于IE无效
--如果一个方法仅仅是返回Error对象而不是抛出对象,则在返回前应该调用该方法
Function原生类型
与Array,String类型处理同等地位
每个方法均为Function类型的实例
--typeof(Array)==typeof(Function)=="function"
方法调用时根据发起的对象来确定this上下文引用
Funciton.prototype.apply(instance,args)
Function.prototype.call(instance,[arg1,[,arg2,[,......]]])
Fucntion原生类型扩展
Function.createDelegate(instance,method)方法:
--得到一个方法引用,执行它时会调用method方法,并保证method方法的上下文this引用为instance
Function.createCallback(method,context)方法
--得到一个方法引用,执行它时则会调用method方法,并将context作为额外的参数传入
Boolean原生类型
使用布尔值,而不要使用Boolean对象
--true和false而不是new Boolean(..)
-- (new Boolean(false) &&true)==true ??
Boolean原生类型的扩展
parse静态方法
--Boolean.Parse("true") //true
--Boolean.Parse("tRuE") //true
Number原生类型
32位整数或64位浮点数(IEEE754)
整数表示法
--var num = 50 ; //10进制表示法
--var num = 060; // 8进制表示法 值48
--var num = 0xFF //16进制表示法 值255
使用ParseInt("09") 为0 得到的数是8进制表示法
使用ParseInt("09",10) 为9 第二个参数表示使用10进制转换
浮点数表示法
--var num=5.0;
--var num=3.2e9 //3.2*10^9 ,科学计数法
静态属性
浮点数的范围
--Number.MAX_VALUE //最大值
--Number.MIN_VALUE //最小值
极值
--Number.POSITIVE_INFINITY //正无穷大
--Number.NEGATIVE_INFINITY //负无穷大
不是一个数字(非数字)
--Number.NaN
Number原生类型的扩展
数字和字符串之间的转换
字符串-> 数字
--Number.parseLocale(value)
--Number.parseInvariant(value)
数字->字符串
--Number.prototype.format(format)
--Number.prototype.localeFormat(format)
localeFormat和parseLocale方法
--需要将EnableScriptGlobalization属性设置为true
--浏览器中设置的语言文化
--可以通过Page.Culture来改变
--格式化会输出到页面
parseInvariant和format方法
--相当于语言文化为en-US