日期:2014-05-16  浏览次数:20346 次

[转]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