是做什么的?
你可能经常看到这的写法:
XHTML
你可能很习惯认为这是一个伪协议,意思是使用JavaScript语法解析后面的代码,在a标签的href中才是伪协议!那么如果这个代码变成这样呢:
XHTML
你可以试试,代码并不会出错,因为在JavaScript中这样的写法是合法的。其语法是:
labelName:statement
实际上,在onclick或onmouseover这样的属性的值是一段JavaScript代码片段,因此刚才的代码也是合法的,可执行的。
在的情况有:
1,对象表达法
冒号在这里用来分割对象的属性和属性值。
JavaScript
var o = {
value: 'some value',
words: 'say some words'
};
2,三目运算
冒号在这里用来分割不同条件的返回值。
JavaScript
var result = (condition exp) ? (value1) : (value2) ;
3,分支语句
冒号在这里用来分割被罗列的switch中表达式的值和对应的代码块。
JavaScript
switch(n)
{
case 1:
code 1;
break;
case 2:
code 2;
break;
default:
other codes;
}
上面的情况很常见,而且大家并不陌生,那么一开始我们讲到的写法又是什么意思呢?
labelName:statement
这种是标签的写法,如果你略懂windows中的批处理,你应该一下就知道它的作用,在批处理中,标签用来标识代码位置,在需要改变代码流程的时候,可以goto labelName来实现指定的跳转。而JavaScript中它的功能也与此类似,你可以用标签来标识一个循环,然后用break或continue来改变程序的执行流程。我们来看下下面的例子:
标签名可以使用合法的JavaScript标识符而不能是保留字。
因此,到这里我们就清楚了像
XHTML
这样的写法实际是标签的写法,至于在这里使用标签有没有实际意义就看个人在实现某些效果的时候是否要用标签来区分某些结果了。
参考原文链接:http://i.wanz.im/2010/04/09/one_new_point_to_colon/comment-page-1/?replytocom=1429