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 相关文章推荐
JScript 脚本实现文件下载 一般用于下载木马
Oct 29 Javascript
javascript eval(func())使用示例
Dec 05 Javascript
JavaScript核心语法总结(推荐)
Jun 02 Javascript
js遍历map javaScript遍历map的简单实现
Aug 26 Javascript
浅谈jquery中next与siblings的区别
Oct 27 Javascript
jQuery EasyUI 为Combo,Combobox添加清除值功能的实例
Apr 13 jQuery
原生JS实现小小的音乐播放器
Oct 16 Javascript
详解js跨域请求的两种方式,支持post请求
May 05 Javascript
Vue 路由 过渡动效 数据获取方法
Jul 31 Javascript
Angular设置别名alias的方法
Nov 08 Javascript
JavaScript canvas绘制圆弧与圆形
Feb 18 Javascript
详解Vue 的异常处理机制
Nov 30 Vue.js
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之第一天
2006/10/09 PHP
php获取当月最后一天函数分享
2015/02/02 PHP
php编程实现简单的网页版计算器功能示例
2017/04/26 PHP
PHP实现图片的等比缩放和Logo水印功能示例
2017/05/04 PHP
ThinkPHP5+Layui实现图片上传加预览功能
2018/08/17 PHP
PHP使用观察者模式处理异常信息的方法详解
2019/09/24 PHP
JavaScript的类型简单说明
2010/09/03 Javascript
jQuery实现的向下图文信息滚动效果
2015/05/03 Javascript
深入理解jQuery中的事件冒泡
2016/05/24 Javascript
Javascript的比较汇总
2016/07/25 Javascript
AngularJS入门教程之Select(选择框)详解
2016/07/27 Javascript
Angular.JS中指令ng-if、ng-show/ng-hide和ng-switch的使用教程
2017/05/07 Javascript
一次围绕setTimeout的前端面试经验分享
2017/06/15 Javascript
浅谈基于Vue.js的移动组件库cube-ui
2017/12/20 Javascript
Vue中v-for的数据分组实例
2018/03/07 Javascript
layui点击导航栏刷新tab页的示例代码
2018/08/14 Javascript
vue代码分割的实现(codesplit)
2018/11/13 Javascript
如何使用VuePress搭建一个类型element ui文档
2019/02/14 Javascript
jQuery使用hide()、toggle()函数实现相机品牌展示隐藏功能
2021/01/29 jQuery
[48:38]DOTA2亚洲邀请赛 3.31 小组赛 B组 Mineski vs Secret
2018/03/31 DOTA
Django migrations 默认目录修改的方法教程
2018/09/28 Python
用Django写天气预报查询网站
2018/10/21 Python
OpenCV模板匹配matchTemplate的实现
2019/10/18 Python
Django 简单实现分页与搜索功能的示例代码
2019/11/07 Python
Python自动化之UnitTest框架实战记录
2020/09/08 Python
浅谈CSS3 box-sizing 属性 有趣的盒模型
2019/04/02 HTML / CSS
使用canvas压缩图片上传的方法示例
2020/02/07 HTML / CSS
HTML5触摸事件(touchstart、touchmove和touchend)的实现
2020/05/08 HTML / CSS
日本航空官方网站:JAL
2019/06/19 全球购物
C++:局部变量能否和全局变量重名
2014/03/03 面试题
三月学雷锋月活动总结
2014/04/28 职场文书
临床医学专业求职信
2014/08/08 职场文书
公路施工安全责任书
2015/05/08 职场文书
教师病假条范文
2015/08/17 职场文书
《女娲补天》读后感5篇
2019/12/31 职场文书
讨论nginx location 顺序问题
2022/05/30 Servers