首页 > 请问大家是如何在实践中使用label语句的

请问大家是如何在实践中使用label语句的

从来没有用过label,比较茫然

在哪种情况下使用label语句最好
能否给几个平时使用的情况

之前好像有在哪里看到过说不建议使用lable,是什么原因

3Q


不是表单的label,是js里的label语句
例如下面代码中的top

var itemsPassed = 0;
var i, j;

top:
for (i = 0; i < items.length; i++){
    for (j = 0; j < tests.length; j++)
        if (!tests[j].pass(items[i]))
            continue top;
        itemsPassed++;
}

受教,原来还有这么一种语法。MDN 上已经有你想要的答案了吧:

Avoid using labels

Labels are not very commonly used in JavaScript since they make
programs harder to read and understand. As much as possible, avoid
using labels and, depending on the cases, prefer calling functions or
throwing an error.
- label - JavaScript | MDN


原来你说的是js上的label
label是给js的代码块进行命名的,比如

 if(1)a:{
  alert(0);
  break a;
  alert(1);
};

a是label的名字,当执行break a;后,就不会再执行alert(1)
再比如下面这段代码

<form name="f">
  <input name="t1" /><br/>
  <input name="t2" /><br/>
  <input name="t3" /><br/>
  <input name="t4" /><br/>
  <input type="submit" />
</form>
<script>
var f=document.forms.f;
f.onsubmit=function(){
  chk:{
    if(f.t1.value=="")break chk;
    if(f.t2.value=="")break chk;
    if(f.t3.value=="")break chk;
    if(f.t4.value=="")break chk;
    alert("验证通过!");
    return true;
  };
  alert("验证失败");
  return false;
};
</script>

当任何一个input为空的时候,都会弹出验证失败。
你写的那段代码,top就是label名,表示后面整个for循环,continue top就是结束单次循环。
参考:神秘的大括号 JavaScript的命名代码块


大多是使用在表单上。


基本是在表单上

【热门文章】
【热门文章】