JavaScript程序中的流程控制语句用法总结


Posted in Javascript onMay 23, 2016

条件判断语句
1.if语句

if (condition) statement1 else statement2

其中的condition条件可以是任意表达式,而且对这个表达式的求值结果不一定是布尔值。ECMAScript会自动调用Boolean()转换函数将这个表达式的结果转换为一个布尔值。如果对condition求值的结果为true,则执行statement1,如果对condition求值结果为false,则执行statement2。这两个语句既可以是一行代码,也可以是一个代码块(推荐)。

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

2.switch语句

switch(expression) {
  case value: statement
    break;
  case value: statement
    break;
  case value: statement
    break;
  default: statement
}

switch语句中每一个case的含义是:"如果表达式等于这个值value,则执行后面的语句statement"。而break会导致代码执行跳出switch语句。如果省略break关键字,就会导致执行完当前case后,继续执行下一个case。最后的default关键字则用于在表达式不匹配前面任何一种情形时,执行机动代码(因此,也相当于一个else语句)。

例子1

var num = 25;
switch (true) {
  case num < 0:
    alert("Less than 0");
    break;
  case num >= 0 && num <= 10:
    alert("Between 0 and 10");
    break;
  case num > 10 && num <= 20:
    alert("Between 10 and 20");
    break;
  default:
    alert("More than 20");
}

注意:switch语句在比较值时使用的是全等操作符,因此不会发生类型转换。

循环语句
后测试循环语句。
在对表达式求值之前,循环体内的代码至少被执行一次。

1.do-while语句

do {
  statement
} while (expression);

例子2

var i = 0;
  do {
    i += 2;
  } while (i < 10);
  alert(i);//10

前测试循环语句
2.while语句

while(expression) statement

例子3

var i = 0;
  while(i < 10) {
    i += 2;
  }
  alert(i);//10

3.for语句
它具有在执行循环之前初始化变量和定义循环后要执行代码的能力。
例子4

for(var i = 0;i < 10;i++) {
  alert(i);
}

迭代语句
for-in语句
for-in 语句是一种精准的迭代语句,可以用来枚举对象的属性

for (var prop in window) {
    console.log(prop);
  }

ECMAScript对象的属性没有顺序。因此通过for-in循环输出的属性名是不可预测的,具体来讲,所有属性都会被返回一次,单反毁的先后次序可能会因浏览器而异。建议在使用之前,先检测确认该对象的值不是null或unedfined。

控制执行语句
break语句
立即退出循环
例子5

var num = 0;
  for(var i = 1;i < 10;i++) {
    if(i % 5 == 0) {
      break;
    }
    num++;
  }
  alert(num);//4

continue语句
退出当前正在执行的循环代码,然后开始继续循环。

var num = 0;
    for(var i = 1;i < 10;i++) {
      if(i % 5 == 0) {
        continue;
      }
      num++;
    }
    alert(num);//8

return语句
可指定返回值,也可不指定(此时返回undefined)。
1.return语句后停止并立即退出函数,return后面的语句也永远不会执行
2.return语句只能在函数体内出现,如果不是的话会自动报语法错误

Javascript 相关文章推荐
Javascript创建Silverlight Plugin以及自定义nonSilverlight和lowSilverlight样式
Jun 28 Javascript
jQuery aminate方法定位到页面具体位置
Dec 26 Javascript
JavaScript返回当前会话cookie全部键值对照的方法
Apr 03 Javascript
jquery使用经验小结
May 20 Javascript
javascript 判断两个日期之差的示例代码
Sep 05 Javascript
javascript实现unicode与ASCII相互转换的方法
Dec 10 Javascript
AngularJS验证信息框架的封装插件用法【w5cValidator扩展插件】
Nov 03 Javascript
javascript入门之window对象【新手必看】
Nov 22 Javascript
Vue 2.0学习笔记之使用$refs访问Vue中的DOM
Dec 19 Javascript
浅谈webpack打包过程中因为图片的路径导致的问题
Feb 21 Javascript
vue-cli webpack模板项目搭建及打包时路径问题的解决方法
Feb 26 Javascript
bootstrap table表格插件之服务器端分页实例代码
Sep 12 Javascript
Node.js服务器环境下使用Mock.js拦截AJAX请求的教程
May 23 #Javascript
谈一谈bootstrap响应式布局
May 23 #Javascript
JavaScript实现复制或剪切内容到剪贴板功能的方法
May 23 #Javascript
JavaScript的Vue.js库入门学习教程
May 23 #Javascript
详解JavaScript中|单竖杠运算符的使用方法
May 23 #Javascript
AJAX实现瀑布流触发分页与分页触发瀑布流的方法
May 23 #Javascript
jQuery Mobile中的button按钮组件基础使用教程
May 23 #Javascript
You might like
php防止sql注入示例分析和几种常见攻击正则表达式
2014/01/12 PHP
php二分查找二种实现示例
2014/03/12 PHP
php隐藏IP地址后两位显示为星号的方法
2014/11/21 PHP
一个非常实用的php文件上传类
2017/07/04 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
2019/11/23 PHP
JavaScript监测ActiveX控件是否已经安装过的代码
2008/09/02 Javascript
checkbox设置复选框的只读效果不让用户勾选
2013/08/12 Javascript
Node.js中调用mysql存储过程示例
2014/12/20 Javascript
jQuery处理json数据返回数组和输出的方法
2015/03/11 Javascript
JavaScript 对象深入学习总结(经典)
2015/09/29 Javascript
jQuery实现横向带缓冲的水平运动效果(附demo源码下载)
2016/01/29 Javascript
AngularJS实现网站换肤实例
2021/02/19 Javascript
详解Sea.js中Module.exports和exports的区别
2017/02/12 Javascript
JS实现移动端实时监听输入框变化的实例代码
2017/04/12 Javascript
js中apply与call简单用法详解
2017/11/06 Javascript
electron demo项目npm install安装失败的解决方法
2018/02/06 Javascript
使用Vue动态生成form表单的实例代码
2018/04/26 Javascript
小程序实现短信登录倒计时
2019/07/12 Javascript
Servlet返回的数据js解析2种方法
2019/12/12 Javascript
编写v-for循环的技巧汇总
2020/12/01 Javascript
[44:50]DOTA2上海特级锦标赛B组小组赛#2 VG VS Fnatic第二局
2016/02/26 DOTA
python利用urllib和urllib2访问http的GET/POST详解
2017/09/27 Python
Python语言进阶知识点总结
2019/05/28 Python
django基于restframework的CBV封装详解
2019/08/08 Python
全球知名旅游社区巴西站点:TripAdvisor巴西
2016/07/21 全球购物
Trunki英国官网:儿童坐骑式行李箱
2017/05/30 全球购物
EJB2和EJB3在架构上的不同点
2014/09/29 面试题
毕业生在校学习的自我评价分享
2013/10/08 职场文书
班会关于环保演讲稿
2013/12/29 职场文书
列车长先进事迹材料
2014/01/25 职场文书
《我的信念》教学反思
2014/02/15 职场文书
文明风采获奖感言
2014/02/18 职场文书
法律进企业活动方案
2014/03/04 职场文书
孝敬父母的活动方案
2014/08/28 职场文书
关于教师节的演讲稿
2014/09/04 职场文书
Redis基本数据类型Zset有序集合常用操作
2022/06/01 Redis