JavaScript中冒号(:)是做什么的?你可能经常看到这的写法:
XHTML
<div onclick= »javascript:alert(‘test’) »>test</div> |
你可能很习惯认为这是一个伪协议,意思是使用JavaScript语法解析后面的代码,在a标签的href中才是伪协议!那么如果这个代码变成这样呢:
XHTML
<div onclick= »xxoo:alert(‘test’) »>test</div> |
你可以试试,代码并不会出错,因为在JavaScript中这样的写法是合法的。其语法是:
labelName:statement
实际上,在onclick或onmouseover这样的属性的值是一段JavaScript代码片段,因此刚才的代码也是合法的,可执行的。
在JavaScript中,我们常见的使用冒号(:)的情况有:
1,对象表达法
冒号在这里用来分割对象的属性和属性值。
JavaScript
var o = { value: ‘some value’, words: ‘say some words’}; |
2,三目运算
冒号在这里用来分割不同条件的返回值。
JavaScript
1 | 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标识符而不能是保留字。