除 BASE, HEAD, HTML, META, SCRIPT, STYLE, TITLE 标签外,id 都可用.
name只用于APPLET,SELECT,FORM,FRAME,IFRAME,IMG,A,INPUT,OBJECT,MAP,PARAM,META. (name有时有自己的用途)
table 中 name 无定义, 应当用 id.
有些标签,可以同时有name和id.
在一个HTML网页中,id是唯一的,即只有某一个标签,或某一个块的标识符是这个id.
id 在HTML中的作用:
(1) 用id选择相应的style sheet(风格).
(2) <A ..>链接的目的地
(3) 脚本语言用它找目的地(找该id的标签)
(4) 作为名字,用于声明某OBJECT element
(5) 作为一个标签或块的区分标致(用于从HTML网页中取出数据放入数据库或把HTML翻译成别的格式,等情况).
(参考HTML 4.0 定义)
JavaScript 异常 使用throw语句抛出异常顾名思义,就是超出常规
js的异常是在运行过程中发生的错误,如果您学过java中的异常,会知道这叫做runtime exception,那么什么是js异常呢?在代码的运行过程中,错误是不可避免的,总的来说,错误发生于两种情况:一是程序内部的逻辑或者语法错误,二是运行环境或者用户输入中不可预知的数据造成的错误。对于前者,就称之为错误(error),可以通过调试程序来解决;而后一种则更多的称之为异常(exception),顾名思义,就是超出常规,没有按程序设计的意愿来输入数据。当然,异常还会有许多种类型。
所以说,异常并不等价于错误,相反,有时还会利用异常来解决一些问题。JavaScript可以捕获一个异常并进行相应的处理,从而避免了浏览器向用户报错。
使用try-catch-finally处理异常
用户可以使用该结构处理可能发生异常的代码,如果发生异常,则由catch捕获并进行处理,其语法如下:
try{
//要执行的代码
}
catch(e){
//处理异常的代码
}
finally{
//无论异常发生与否,都会执行的代码
}
通过异常处理,可以避免程序停止运行,从而具有了一定的自我修复能力。
在Ajax开发中,利用异常处理的一个典型应用就是创建XMLHttpRequest对象,不同浏览器创建它的方式是不一样的,为了使代码能够跨浏览器运行,就可以利用异常,一种方法不行,再用另一种方法,直到不发生异常为止,例如:
<script language=”JavaScript” type=”text/javascript”>
<!–
var xmlhttp
try{
//尝试用IE浏览器的方式创建XMLHttpRequest对象
xmlhttp=new ActiveXObject(”Microsoft.XMLHTTP”)
}catch(e){
try{
//尝试用非IE浏览器的方式常见XMLHttpRequest对象
xmlhttp=new XMLHttpRequest()
}catch(e){}
}
//–>
</script>
通过这种方式,就可以跨浏览器创建XMLHttpRequest对象。注意,即使不在catch块内进行处理,catch标识及其参数e也是必须写的,否则会产生语法错误,而finnally则不是必须的。
使用throw语句抛出异常
在JavaScript中有其内部的异常机制,在遇到非法操作时能自动抛出异常。实际的开发中,随着程序的复杂,需要能自己实现异常,这可以通过throw语句来实现:
throw value;
其中value就是要抛出的异常变量,它可以是JavaScript中的任何一种类型(相当于自定义异常)。但在JavaScript内部的异常中,异常参数(即catch (e)中的e)是一个名为error的对象,可以通过new Error(message)来创建这个对象,异常的描述被作为error对象的一个属性message,可以由构造函数传入,也可以之后赋值。通过这个异常描述message,可以让程序获取异常的详细信息,从而自动处理。
下面的程序计算两个数据的和,如果参数不是数字,则抛出异常,代码如下:
<script language=”JavaScript” type=”text/javascript”>
<!–
//函数默认要求参数为数字
function sum(a,b){
a=parseInt(a)
b=parseInt(b)
//如果a或b不能转换为数字则抛出一个异常对象
if(isNaN(a) || isNaN(b)){
throw new Error(”arguments are not numbers”)
}
return a+b
}
try{
//错误的调用
var s=sum(”c”,”d”)
}catch(e){
//显示异常的详细信息
alert(e.message)
}
//–>
</script>
程序中使用字母作为参数传递给sum函数,是错误的,所以函数内抛出了一个异常对象,这个对象被catch语句获取,并使用alert语句显示了其详细信息。
注意:使用new Error(message)创建异常对象只是一种默认的习惯,也是内置异常的实现方式。这不是必需的,完全可以抛出任意数据类型的异常,例如一个整数,来作为异常的描述。只要在程序中抛出异常和捕获异常能匹配即可。
Error对象除了message属性以外,还有一些其他的属性,这些属性因浏览器而异,例如:在IE浏览器中,error对象的属性包括 name、 number、description、message;而在Firefox浏览器中,error对象的属性包括message、fileName、 lineNumber、stack、name。在实际的应用中如果要实现自己的异常,这些属性只要被赋值,都是可用的,其中Firefox浏览器还会自动对stack属性赋值,用于显示异常出现的位置。
JavaScript 内置的7个异常
Error
SyntaxError
TypeError
RangeError
EvalError
ReferenceError
URIError
部分来自baidu
javascript用法:break,continue和return语句
2009-02-05 22:17
break,continue和return这三个语句的用法新手们经常弄混淆,至少在我学习C语言的时候经常把它们的用法给搞错。不过现在好了,我已彻底搞清楚它们之间的用法!!由于最近一直在看javascript,下面简要说一下它们三个在javascript的一些用法
break语句:
break语句会使运行的程序立刻退出包含在最内层的循环或者退出一个switch语句。由于它是用来退出循环或者switch语句,所以只有当它出现在这些语句时,这种形式的break语句才是合法的。
如果一个循环的终止条件非常复杂,那么使用break语句来实现某些条件比用一个循环表达式来表达所有的条件容易得多。
<script type="text/javascript">
for(var i=1i<=10i++){
if(i==6) break
document.write(i)
}
//输出结果:12345
</script>
continue语句:
continue语句和break语句相似。所不同的是,它不是退出一个循环,而是开始循环的一次新迭代。
continue语句只能用在while语句、do/while语句、for语句、或者for/in语句的循环体内,在其它地方使用都会引起错误!
<script type="text/javascript">
for(var i=1i<=10i++){
if(i==6) continue
document.write(i)
}
//输出结果:1234578910
</script>
return语句:
return语句就是用于指定函数返回的值。return语句只能出现在函数体内,出现在代码中的其他任何地方都会造成语法错误!
当执行return语句时,即使函数主体中还有其他语句,函数执行也会停止!
throw是语句抛出一个异常;语法:throw(异常对象);
throws是方法可能抛出异常的声明。(用在声明方法时,表示该方法可能要抛出异常) ;语法:[(修饰符)](返回值类型)(方法名)([参数列表])[throws(异常类)]{......}
当某个方法可能会抛出某种异常时用于throws 声明可能抛出的异常,然后交给上层调用它的方法程序处理。如:
扩展资料:
throw与throws的区别
1、throw用在方法体内,上面代码显示了,是直接在main方法体内
throws用在方法声明后面,表示再抛出异常,由该方法的调用者来处理。这个看上面的代码就理解了。
2、throw是具体向外抛异常的,抛出的是一个异常实例。
throws声明了是哪种类型的异常,使它的调用者可以捕获这个异常。
3、throw,如果执行了,那么一定是抛出了某种异常了,安生throws表示可能出现,但不一定。
4、同时出现的时候,throws出现在函数头、throw出现在函数体,两种不会由函数去处理,真正的处理由函数的上层调用处理。
参考资料:百度百科 异常处理
throw不需要在try中,而随便一条语句就可以抛出个异常.try中可以捕获到你的代码中的throw例如
function abc(){
var a = 1
if(a == 1){
throw "a等于1"
}
}
try{
abc()
}catch(e){
alert(e)
}