解析JavaScript中的标签语句
Javascript中标签(label)是一个标识符。标签可以与变量重名,它是一个独立的语法元素(既不是变量,也不是类型),其作用是标识”标签化语句(labeled statement)”
标签声明
标签(label)可以声明在任何一个语句前面,或者语句块前,以使得语句或语句块被“标签化(labeled)”。
label1:
代码如下:
myFun1();
label2:{
var i = 1, j = 2;
var k = i + j;
}
注意:当标签(label)后面连续多条语句时,只有第一条语句被标签化
虽然GOTO是Javascript的保留关键字,但是里没有GOTO语句。除了GOTO外,Javascript里有另外三个关键字可以改变程序的流程:break,continue和return。其中break和continue可以和标签(label)一起使用。
break与标签
break通常用于跳出for、while循环和跳出switch语句。默认情况下,break子句作用于循环语句的最内层,或者整个switch语句,因此它不必特别地指定中断语句的范围。但break子句具有一种扩展语法,以指示其作用范围。
break my_label;
除了可以跳出循环和switch分支,还可以跳出标签化语句(labeled statement)的内部
代码如下:
var str = prompt('please input a string','1234567890');
my_label: {
if (str && str.length < 10) {
break my_label:
}
str = str.substr(str.length-10);
}
alert(str);
continue与标签
continue仅对循环语句有意义,因此它只能作用于for、for…in、while和do…while这些语句的内部。默认情况下,它表明停止当前循环并跳转到下一次循环迭代开始处运行。
continue后面也可以带一个标签(label),这时表明从循环体内部中止,并继续到标签(label)指示处开始执行,并且这个标签指示的语句必须是包含此continue的循环语句。
例如:
loop:
代码如下:
for (var j = 0; j < 5; j++)
{
if (j == 2) continue loop;
document.write("loop: " + j +);
}
上面例子continue + label体现不出label的特殊作用,其实完全可以把label去掉,效果相同。下面再看一个例子
代码如下:
document.write("Entering the loop!<br /> ");
outerloop: // This is the label name
for (var i = 0; i < 3; i++)
{
document.write("Outerloop: " + i + "<br />");
for (var j = 0; j < 5; j++)
{
if (j == 3){
continue outerloop;
}
document.write("Innerloop: " + j + "<br />");
}
}
document.write("Exiting the loop!<br /> ");
使用continue label直接跳到外层循环才是其意义所在。
相关推荐
-
JavaScript中的标签语句用法分析
本文实例分析了JavaScript中的标签语句用法.分享给大家供大家参考.具体分析如下: 最近在看w3school,然后看到js部分, <!DOCTYPE html> <html> <body> <script> cars=["BMW","Volvo","Saab","Ford"]; list: { document.write(cars[0] + "<br>
-
javascript新建标签,判断键盘输入,以及判断焦点(示例代码)
如下所示: 复制代码 代码如下: function saomiao(event,n){ var code=0; code=event.keyCode;//监听键盘输入事件 if(code=='13')//如果键盘输入回车键 { if(n>0)//开始判断参数 { if(document.getElementById('logisticsno').value=='') {
-
JavaScript 替换Html标签实现代码
复制代码 代码如下: str = str.<br /> replace( /&(?!#?\w+;)/g , '&').<br /> replace( /undefinedundefined([^undefinedundefined]*)"/g , '"$1"' ).<br /> replace( /</g , '<' ).<br /> replace( />/g , '>' ).<b
-
javascript语句中的CDATA标签的意义
看到这样一串代码: <SCRIPT type=text/JavaScript> <!--//--><![CDATA[//><!-- var spaceStaticData={ style: '/style/common/', hostId: 2241772, hostPath:'', hostName: 'mycm22', visitorName:'mycm22',
-
javascript 获取url参数和script标签中获取url参数函数代码
url paramter: 复制代码 代码如下: //lastest: var getArgs=function() {//get url querystring var params=document.location.search,reg=/(?:^\?|&)(.*?)=(.*?)(?=&|$)/g,temp,args={}; while((temp=reg.exec(params))!=null) args[temp[1]]=decodeURIComponent(temp[2]);
-
javascript标签在页面中的位置探讨
在制作网页的过程中,我们经常写类似下面的代码: [html] 复制代码 代码如下: <html> <head> <title>Example HTML Page</title> <script type="text/javascript" src="example1.js"></script> <script type="text/javascript" src=&qu
-
Javascript获取标签ID改变style属性的代码
实例JavaScript代码 下面的这段代码中,我们通过select元素的name属性来设置具体要访问style的哪个属性(本例中为背景色),这样,这个函数就可以用来设置不同的CSS属性了. 复制代码 代码如下: <script type="text/javascript"> var d = document.getElementById("d"); function setProperty(){ var set = document.getElemen
-
用javascript来实现select标签的美化的代码
论坛经常有人会问到用CSS如何美化Select标签,其实但凡你看到很酷的都是用javascript来实现的.昨天试着做了一下,基本实现的初级功能.拿出来和大家一起分享一下.先可以看一下预览效果:http://www.iwcn.net/demo/select. [功能需求] 1.调用要方便,做好之后应该像这样: 程序代码 function loadSelect(selectobj){ //传入一个select对象就能将他的样式美化 } 2.不改变原有表单项,表单的页面代码不去破坏: 程序代码 <f
-
解析JavaScript中的标签语句
Javascript中标签(label)是一个标识符.标签可以与变量重名,它是一个独立的语法元素(既不是变量,也不是类型),其作用是标识"标签化语句(labeled statement)"标签声明标签(label)可以声明在任何一个语句前面,或者语句块前,以使得语句或语句块被"标签化(labeled)".label1: 复制代码 代码如下: myFun1();label2:{ var i = 1, j = 2; var k = i + j;} 注意:当标签(
-
JavaScript中:表达式和语句的区别[译]
1.语句和表达式 JavaScript中的表达式和语句是有区别的.一个表达式会产生一个值,它可以放在任何需要一个值的地方,比如,作为一个函数调用的参数.下面的每行代码都是一个表达式: myvar3 + xmyfunc("a", "b")语句可以理解成一个行为.循环语句和if语句就是典型的语句.一个程序是由一系列语句组成的.JavaScript中某些需要语句的地方,你可以使用一个表达式来代替.这样的语句称之为表达式语句.但反过来不可以:你不能在一个需要表达式的地方放一
-
JavaScript中的return语句简单介绍
return语句在js中非常的重要,不仅仅具有返回函数值的功能,还具有一些特殊的用法,下面就结合实例简单介绍一下return语句的作用. 一.用来返回控制和函数结果: 通常情况,return语句对于一个函数是很有必要的,因为往往需要函数在一系列的代码执行后会得到一个期望的返回值,而此值就是通过return语句返回,并且将控制权返回给主调函数. 语法格式: return 表达式 代码实例如下: function add(){ var a=1; var b=2; return a+b; } func
-
全面解析JavaScript中“&&”和“||”操作符(总结篇)
1.||(逻辑或), 从字面上来说,只有前后都是false的时候才返回false,否则返回true. alert(true||false); // true alert(false||true); // true alert(true||true); // true alert(false||false); // false 这个傻子都知道~~ 但是,从深层意义上来说的话,却有另一番天地,试下面代码 alert(0||1);//1 显然,我们知道,前面0意味着false,而后面1意味着true,
-
Javascript中For In语句用法实例
本文实例讲述了Javascript中For In语句用法.分享给大家供大家参考.具体如下: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>For In 语句</title> <
-
javascript中的循环语句for语句深入理解
程序实现中经常要用到循环语句,其中for循环是多数语言都有的.在javascript中,for循环有几种不同的使用情况,下面就分别来讲述我的理解. 第一种:(通常情况,循环执行相关操作) 复制代码 代码如下: var objA=document.getElementsByTagName("a"); var i,max; for(i=0,max=objA.length;i<max;i++){ objA[i].onclick=function(){ alert(this.innerH
-
深入解析JavaScript中函数的Currying柯里化
引子 先来看一道小问题: 有人在群里出了到一道题目: var s = sum(1)(2)(3) ....... 最后 alert(s) 出来是6 var s = sum(1)(2)(3)(4) ....... 最后 alert(s) 出来是10 问sum怎么实现? 刚看到题目,我第一反应是sum返回的是一个function,但是没有最终实现,印象中看到过类似的原理,但是记不清了. 后来同事说,这个是叫柯里化, 实现方法比较巧妙: function sum(x){ var y = func
-
全面解析JavaScript中apply和call以及bind(推荐)
函数调用方法 在谈论JavaScript中apply.call和bind这三兄弟之前,我想先说下,函数的调用方式有哪些: •作为函数 •作为方法 •作为构造函数 •通过它们的call()和apply()方法间接调用 前面的三种调用方法,我们都知道且不在这篇文章的讨论范围内,就不说了. 下面我们来说说这第四种调用方法 通过call()和apply()间接调用 其实,我们可以将这两个函数看做是某个对象的方法,通过调用方法的方式来间接调用函数: function f(){} f.call(o); f.
-
JavaScript中对循环语句的优化技巧深入探讨
循环是所有编程语言中最为重要的机制之一,几乎任何拥有实际意义的计算机程序(排序.查询等)都里不开循环. 而循环也正是程序优化中非常让人头疼的一环,我们往往需要不断去优化程序的复杂度,却因循环而纠结在时间复杂度和空间复杂度之间的抉择. 在 javascript 中,有3种原生循环,for () {}, while () {}和do {} while (),其中最为常用的要数for () {}. 然而for正是 javascript 工程师们在优化程序时最容易忽略的一种循环. 我们先来回顾一下for
随机推荐
- windows下nginx的安装使用及解决80端口被占用nginx不能启动的问题
- php加密算法之实现可逆加密算法和解密分享
- JS制作简单的三级联动
- 初步讲解Ruby编程中的多线程
- SqlServer使用公用表表达式(CTE)实现无限级树形构建
- Mysql中的join操作
- js和jquery使按钮失效为不可用状态的方法
- Java图形用户界面之列表框
- js实现类似菜单风格的TAB选项卡效果代码
- php通过sort()函数给数组排序的方法
- 关于bluehost空间上wordpress后台变为英文的解决方案
- Python version 2.7 required, which was not found in the registry
- Python3.x版本中新的字符串格式化方法
- 控制input输入框中提示信息的显示和隐藏的方法
- jquery三个关闭弹出层的小示例
- 通过pjax实现无刷新翻页(兼容新版jquery)
- 解决Eclipse配置Tomcat出现Cannot create a server using the selected type错误
- java基于jedisLock—redis分布式锁实现示例代码
- Vim 编辑器操作汇总
- 详解Java 中的三种代理模式