ECMAScript 语句

一、ECMAScript if 语句

if 语句是 ECMAScript 中最常用的语句之一。

if 语句的语法

if (condition) statement1 else statement2

还可以串联多个 if 语句。就像这样:

if (condition1) statement1 else if (condition2) statement2 else statement3

二、ECMAScript 迭代语句

迭代语句又叫循环语句,声明一组要反复执行的命令,直到满足某些条件为止。
循环通常用于迭代数组的值(因此而得名),或者执行重复的算术任务。
本节为您介绍 ECMAScript 提供的四种迭代语句。

1、do-while 语句

do-while 语句是后测试循环,即退出条件在执行循环内部的代码之后计算。这意味着在计算表达式之前,至少会执行循环主体一次

它的语法如下:

    do {statement} while (expression);

2、while 语句

while 语句是前测试循环。这意味着退出条件是在执行循环内部的代码之前计算的。因此,循环主体可能根本不被执行。

它的语法如下:

while (expression) statement

3、for 语句

for 语句是前测试循环,而且在进入循环之前,能够初始化变量,并定义循环后要执行的代码。

它的语法如下:

for (initialization; expression; post-loop-expression) statement

注意:post-loop-expression 之后不能写分号,否则无法运行。

4、for-in 语句

for 语句是严格的迭代语句,用于枚举对象的属性。

它的语法如下:

for (property in expression) statement

PropertyIsEnumerable()是 ECMAScript 中专门用于说明属性是否可以用 for-in 语句访问的方法。


三、ECMAScript 标签语句

有标签的语句
可以用下列语句给语句加标签,以便以后调用:

label : statement

例如:

start : i = 5;

在这个例子中,标签 start 可以被之后的 break 或 continue 语句引用。


四、ECMAScript break 和 continue 语句

break 和 continue 语句对循环中的代码执行提供了更严格的控制。

1、break 和 continue 语句的不同之处

  • break 语句可以立即退出循环,阻止再次反复执行任何代码。
  • 而 continue 语句只是退出当前循环,根据控制表达式还允许继续进行下一次循环。

2、与有标签的语句一起使用

break 语句和 continue 语句都可以与有标签的语句联合使用,返回代码中的特定位置。

var iNum = 0;

outermost:
for (var i=0; i<10; i++) {
  for (var j=0; j<10; j++) {
    if (i == 5 && j == 5) {
    break outermost;   
  }
  iNum++;
  }
}

alert(iNum);    //输出 "55"

在上面的例子中,标签 outermost 表示的是第一个 for 语句。如果使用continue outermost;输出结果为95。


五、ECMAScript with 语句

有标签的语句

with 语句用于设置代码在特定对象中的作用域。

它的语法:

with (expression) statement

例如:

var sMessage = "hello";
with(sMessage) {
  alert(toUpperCase()); //输出 "HELLO"
}

在这个例子中,with 语句用于字符串,所以在调用 toUpperCase() 方法时,解释程序将检查该方法是否是本地函数。如果不是,它将检查伪对象 sMessage,看它是否为该对象的方法。然后,alert 输出 "HELLO",因为解释程序找到了字符串 "hello" 的 toUpperCase() 方法。

提示:with 语句是运行缓慢的代码块,尤其是在已设置了属性值时。大多数情况下,如果可能,最好避免使用它。

六、ECMAScript switch 语句

1、switch 语句

switch 语句是 if 语句的兄弟语句。
开发者可以用 switch 语句为表达式提供一系列的情况(case)。

switch 语句的语法:

switch (expression)
  case value: statement;
    break;
  case value: statement;
    break;
...
  case value: statement;
    break;
  default: statement;

每个情况(case)都是表示“如果 expression 等于 value,就执行 statement”。

2、ECMAScript 和 Java 中的 switch 语句

ECMAScript 和 Java 中的 switch 语句有两点不同。在 ECMAScript 中,switch 语句可以用于字符串,而且能用不是常量的值说明情况:

var BLUE = "blue", RED = "red", GREEN  = "green";

switch (sColor) {
  case BLUE: alert("Blue");
    break;
  case RED: alert("Red");
    break;
  case GREEN: alert("Green");
    break;
  default: alert("Other");
}

这里,switch 语句用于字符串 sColor,声明 case 使用的是变量 BLUE、RED 和 GREEN,这在 ECMAScript 中是完全有效的。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,558评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,002评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,024评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,144评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,255评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,295评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,068评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,478评论 1 305
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,789评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,965评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,649评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,267评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,982评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,800评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,847评论 2 351

推荐阅读更多精彩内容

  • [The Swift Programming Language 中文版]本页包含内容: Swift提供了多种流程控...
    风林山火阅读 560评论 0 0
  • 本章将会介绍 控制流For-In 循环While 循环If 条件语句Switch 语句控制转移语句 continu...
    寒桥阅读 715评论 0 0
  • 作者的序言 朋友们,弃疗系列4出来啦,作者还并没有放弃,感觉自己萌萌哒,233。 语句 js程序其实就是一系列可执...
    zhaolion阅读 1,747评论 0 8
  • 昨天的放肆吃饭导致今天早上体重上升1.22斤。昨天早上瘦回去的,昨天又吃回来了。昨天下午吃了个月饼,据说热量超高。...
    望飞雪阅读 139评论 0 1
  • 宫腔女,春园松,莫若晴时风又融。 三更雨,帝王宠,平登后位生死动。 寂枫林,长绸落,凉夜飘摇窗前歌。 应为情,百般...
    楠木君阅读 392评论 0 0