JavaScript语言精粹3异常,扩充类型功能
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JavaScript语言精粹3异常,扩充类型功能,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3694字,纯文字阅读大概需要6分钟。
内容图文
javascript提供了一套异常处理机制。所谓异常,是指干扰程序的正常流程的,不寻常(并非,完全出乎意料的)的事故。
1 <! DOCTYPE html > 2 < html lang ="en" > 3 < head > 4 < meta charset ="UTF-8" > 5 < title >抛出异常</title> 6</head> 7<body> 8 9</body>10</html>11<script type="text/javascript">12//javascript提供了一套异常处理机制。所谓异常,是指干扰程序的正常流程的,不寻常(并非,完全出乎意料的)的事故。13//当发生这样的事故,则需要抛出这个异常14var add =function(a,b){ 15//传人参数,有个不是number类型,则NaN16if(a !=‘number‘|| b !=‘number‘ ){ 17//throw 生成一个可由 try{} catch{}语句处理的异常(例外)18//throw (exception) exception可以是,字符串 throw "This is a execption"; throw 500; 可以是数字,逻辑值或者对象!19//此处 throw 抛出的是个异常对象,该对象有name message属性20throw { 21 name: ‘TypeError‘, 22 message: ‘add needs number‘23 }; 24return a+b; 25 } 26//throw中断函数的执行,它应该抛出一个exception对象,该对象包含一个识别异常类型的name属性和一个描述异常的message属性,可以添加其他属性2728 } 29//抛出的对象将被传递到,一个try语句的catch从句30//创建一个try_it函数,以不正确的参数调用add函数31var try_it =function(){ 32try { 33 add(‘seven‘); 34 }catch (e){ 35 document.writeln(e.name+": "+e.message); 36 } 37 }; 3839//e即throw语句定义抛出的对象,在try{}运行函数,在catch{}里处理异常4041 try_it();//TypeErro: add needs number42//如果try代码块中抛出一个异常,控制权会跳转它的catch从句上 43//----一个try语句,只会有一个,捕获所有异常的catch代码块,如果处理手段,取决于异常类型,则异常处理器,必须检查,对异常象的name属性来确定异常类型!!44</script>
扩充类型的功能 Argumenting Types
JavaScript允许给语言基本类型扩充功能。通过Object.prototype添加方法,可以让方法对所有对象,都适用。同理,对函数,数组,字符串,数字,布尔值。正则表达式同样适用。
1 <! DOCTYPE html > 2 < html lang ="en" > 3 < head > 4 < meta charset ="UTF-8" > 5 < title >扩充类型</title> 6</head> 7<body> 8 9</body>10</html>11<script type="text/javascript">12//JavaScript允许给语言基本类型扩充功能。通过Object.prototype添加方法,可以让方法对所有对象,都有用。13//同理,对函数,数组,字符串,数字,布尔值。正则表达式同样适用。1415//给Function.prototype添加方法,使该方法,对所有函数都可用16//给Fuction.prototype增加一个method方法,下次给对象增加方法时,不用键入prototype17//参数name是字符串,不能用.符号取属性,所以用[]。参数func不能是关键字!!18 Function.prototype.method =function(name,func){ 19//即建了一个类库,务必小心,库中存在的属性函数20if(!this.prototype[name]){ 21this.prototype[name] = func; 22 } 23returnthis; 24 }; 25//增加一个给Number取整数部分的方法26//给Number.prototype增加一个integer方法,所有Number类型的对象都可用这个方法27 Number.method(‘integer‘,function (){ 28//提取数字的整数部分,负数的话用ceil(-5.9) 即 -5 向上舍入,取大的值所以是 -5,那么整数部分即保持529//正数用ceil(5.9) 即 6, 取到不是整数部分,所以正数选用floor(5.9),向下舍入即530return Math[this<0?‘ceil‘ : ‘floor‘](this); 31 }); 32 document.writeln((-10/3).integer());//-333 document.writeln((5.9).integer());//53435//Number Array 是函数类型,new调用的时候即类似构造器函数建了一个函数类的对象实例!36 console.log(typeof Number,typeof Array);//function function3738//test一下数组函数对象39 Array.method(‘sum‘,function(){ 40var sum =0; 41for(var i=0;i<this.length;i++){ 42 sum +=this[i]; 43 } 44return sum; 45 }); 46//Array的实例都有,都可用这个求和方法47var arr = [6,8,10]; 48var arr2 =new Array(2,4,6); 49 console.log(arr.sum());//2450 console.log(arr2.sum());//12515253</script>
补充一个关于用[]调取属性,关于Math对象中易混的属性方法
1 <! DOCTYPE html > 2 < html lang ="en" > 3 < head > 4 < meta charset ="UTF-8" > 5 < title >MathFunctionElse</title> 6</head> 7<body> 8 9</body>10</html>11<script type="text/javascript">12var num0 = Math.ceil(1.4);//ceil向上取值,不是四舍五入!! round(1.4)是四舍五入13var num = Math[‘ceil‘](1.4); //Math的属性有ceil方法,这里用["ceil"]调取14 console.log(num0);//215 console.log(num);//216 console.log(Math.round(1.4));//11718var myOject = { 19"first_name": "Mike", 20"middle_name": "Tommy", 21"last_neme": "Jack", 2223"printName": function(){ 24// console.log(this."first_name");//不能点取,代字符串命名的属性! 25 console.log(this["first_name"],this["middle_name"],this["last_neme"]); 26 } 2728 }; 29 myOject.printName();//Mike Tommy Jack3031</script>
原文:http://www.cnblogs.com/concentration-web/p/6351217.html
内容总结
以上是互联网集市为您收集整理的JavaScript语言精粹3异常,扩充类型功能全部内容,希望文章能够帮你解决JavaScript语言精粹3异常,扩充类型功能所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。