[ js ] label的教学看不懂

楼主: livetune (初月)   2013-12-29 16:42:29
标签叙述
标签为叙述提供一个识别字,用于直接跳转到该标示符号所指定的行开始
执行。但是,不像是其它的语言,JavaScript没有像goto这样的跳跃叙述
。这个标签叙述仅能由break和continue叙述使用,用来指示break和continue
到哪个叙述,语法如下:
label:
statement
参数label 用于为后面的叙述定义一个唯一的识别字,它可以是任何的符合
JavaScript变量定义规则的识别字。
参数statement是与label相关联的一个或多个叙述,也可以是复合叙述。
例如下面的程式码,定义了一个名为Inner的标签,continue叙述使用一个
标签叙述来创建一个阵列,在该阵列中,每行的第三列包含一个未定义的值。
var a = new Array();
Inner:
for( var i= 0; i < 5 ; i ++){
if( i == 2) {
//如果i等于2就跳到 Inner继续执行,这样第三行就没有赋值
continue Inner;
} else {
a[i] = i + 1;
}
var s = "";
//搜寻阵列元素
for ( var j = 0; j <5; j ++ ) {
s += a[j] + "<br>";
}
document.write(s);
这毁会传回如图5-8所示的结果(第三个元素没有值):
1
2
undefined
4
5
_______撷自张亚飞《JavaScript & jQuery 全能权威指南》
这个范例我有看没有懂耶@@;
不懂的地方有点多..例如,为什么它在宣告变量的时候,是直接在
for循环的括号里面宣告,不是在外面?之后的程式码则是在外面宣
告 var s = "";
它的 else { a[i] = i + 1 }这边我也看不太懂
是表示如果 i 不是小于 5 的话会把它加1吗? 
这边else这样写的用意我也不太懂@@
新手上路,还请大家不吝指点迷津一下..感激~感激 ~~ <(__ __)>
想请问之后的程式码也是用同一个阵列吗?变量a…
作者: LPH66 (-6.2598534e+18f)   0000-00-00 00:00:00
你先不要看 label, 把那之前的东西给搞懂再说如果都懂了还是看不懂范例那就换本书吧
作者: s540421 (虫它虫它)   0000-00-00 00:00:00
var i 要宣告在循环内外都可以,javascript本身有提升机制,会自动把for statement上的变量宣告提升到scope开头else内则是把i的值加上1,然后赋值给a[i]你明白for循环机制的话会明白这段循环会执行5次变量i的值会从0开始逐次增加1,0->1->2->3->4而label这东西如1F所言,可以不用看,这是时代遗物至于最后的问题,变量名称要怎么取随你高兴,符合规则就好如果给他new Array或[],这变量就是一个阵列你赋予字串给它,它就是存有字串的变量,这是弱形态的特性
作者: LPH66 (-6.2598534e+18f)   0000-00-00 00:00:00
其实我的意思是这些都跟 label 无关而是更基本的东西而如果一本书跳过这些更基本的东西没说就讲 label 的话那这本书也就不用看了...不过确实现在也不需要去知道 label
作者: shyangs (厚呦)   0000-00-00 00:00:00
#1IKHBzdk (Web_Design) 这本书的奇怪问题

Links booklink

Contact Us: admin [ a t ] ucptt.com