浅谈JavaScript中的分支结构


Posted in Javascript onJuly 01, 2016

说到JavaScript中的分支结构,我们就不得不提到流程控制这个词,我们所有的程序都是由数据和算法组成的。

程序=数据+算法

通常我们所说的算法都可以通过"顺序","分支","循环"三种结构来组合完成。

浅谈JavaScript中的分支结构

在ECMA中规定了一些语句(也称为流程控制语句,分支结构语句),从本质上来说,这些语句定义了ECMAScript中的主要语法,语句通常使用一个或者多个关键字来完成给定任务。

1.1 if 语句

if 语句 - 只有当指定条件为 true 时,使用该语句来执行代码

if (条件)
  {
  只有当条件为 true 时执行的代码
  }

if...else 语句 - 当条件为 true 时执行代码,当条件为 false 时执行其他代码

if (条件)
 {
 当条件为 true 时执行的代码
 }
else
 {
 当条件不为 true 时执行的代码
 }

if...else if....else 语句 - 使用该语句来选择多个代码块之一来执行

if (条件 1)
{
当条件 1 为 true 时执行的代码
}
else if (条件 2)
{
当条件 2 为 true 时执行的代码
}
else
{
当条件 1 和 条件 2 都不为 true 时执行的代码
}

1.2 switch 语句

使用 switch 语句来选择要执行的多个代码块之一。

switch(n)
{
case 1:
 执行代码块 1
 break;
case 2:
 执行代码块 2
 break;
default:
 n 与 case 1 和 case 2 不同时执行的代码
}

工作原理:首先设置表达式 n(通常是一个变量)。随后表达式的值会与结构中的每个 case 的值做比较。如果存在匹配,则与该 case 关联的代码块会被执行。请使用 break 来阻止代码自动地向下一个 case 运行。

default 关键词

请使用 default 关键词来规定匹配不存在时做的事情:

var day=new Date().getDay();
switch (day)
{
case 6:
 x="Today it's Saturday";
 break;
case 0:
 x="Today it's Sunday";
 break;
default:
 x="Looking forward to the Weekend";
}

解释:今天不是周六或者周日才会执行的代码段。

1.3 if 与 switch 的比较

switch case vs else if
   switch case 仅用于等于比较的条件
   else if 可用任意条件
   
   if(Boolean(条件)) else if()
    自带隐式转换,将条件转为boolean
    效率稍微低
   switch case 
    不带隐式转换的等于比较,效率稍微高

以上这篇浅谈JavaScript中的分支结构就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
基于jQuery实现左右div自适应高度完全相同的代码
Aug 09 Javascript
javascript 实现 秒杀,团购 倒计时展示的记录 分享
Jul 12 Javascript
密码框显示提示文字jquery示例
Aug 29 Javascript
Jquery下EasyUI组件中的DataGrid结果集清空方法
Jan 06 Javascript
Node.js与Sails ~项目结构与Mvc实现及日志机制
Oct 14 Javascript
详解JavaScript中this的指向问题
Jan 20 Javascript
vue实现记事本功能
Jun 26 Javascript
vue中beforeRouteLeave实现页面回退不刷新的示例代码
Nov 01 Javascript
Javascript实现简易天数计算器
May 18 Javascript
Javascript原型链及instanceof原理详解
May 25 Javascript
js实现带积分弹球小游戏
Jul 21 Javascript
浅谈vue中document.getElementById()拿到的是原值的问题
Jul 26 Javascript
Bootstrap下拉菜单效果实例代码分享
Jun 30 #Javascript
Bootstrap图片轮播组件使用实例解析
Jun 30 #Javascript
Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗
Jun 30 #Javascript
Bootstrap编写一个同时适用于PC、平板、手机的登陆页面
Jun 30 #Javascript
jQuery获取table行数并输出单元格内容的实现方法
Jun 30 #Javascript
JS实现添加,替换,删除节点元素的方法
Jun 30 #Javascript
JS传值出现中文参数乱码的解决方法
Jun 30 #Javascript
You might like
php Static关键字实用方法
2010/06/04 PHP
php更新mysql后获取改变行数的方法
2014/12/25 PHP
php简单统计在线人数的方法
2016/05/10 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
laravel框架中表单请求类型和CSRF防护实例分析
2019/11/23 PHP
JavaScript 类型的包装对象(Typed Wrappers)
2011/10/27 Javascript
Jquery操作js数组及对象示例代码
2014/05/11 Javascript
jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate)
2014/05/22 Javascript
jquery中EasyUI使用技巧小结
2015/02/10 Javascript
js改变embed标签src值的方法
2015/04/10 Javascript
AngularJS中的过滤器使用详解
2015/06/16 Javascript
关于javascript中dataset的问题小结
2015/11/16 Javascript
jQuery zTree树插件简单使用教程
2017/01/10 Javascript
ES6新特性六:promise对象实例详解
2017/04/21 Javascript
javascript写一个ajax自动拦截并下载数据代码实例
2019/09/07 Javascript
[37:47]IG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python BeautifulSoup中文乱码问题的2种解决方法
2014/04/22 Python
利用python实现数据分析
2017/01/11 Python
django 中使用DateTime常用的时间查询方式
2019/12/03 Python
python操作gitlab API过程解析
2019/12/27 Python
Python 实现将数组/矩阵转换成Image类
2020/01/09 Python
Pytorch 实现计算分类器准确率(总分类及子分类)
2020/01/18 Python
六种酷炫Python运行进度条效果的实现代码
2020/07/17 Python
CSS3支持IE6, 7, and 8的边框border属性
2012/12/28 HTML / CSS
CSS3 中filter(滤镜)属性使用详解
2020/04/07 HTML / CSS
浅析HTML5中的 History 模式
2017/06/22 HTML / CSS
HTML5+CSS设置浮动却没有动反而在中间且错行的问题
2020/05/26 HTML / CSS
MIKI HOUSE美国官方网上商店:日本领先的婴儿和儿童高级时装品牌
2020/06/21 全球购物
护理专业毕业生自我鉴定
2013/10/08 职场文书
餐厅经理岗位职责和岗位目标
2014/02/13 职场文书
客服专员岗位职责
2014/02/28 职场文书
终止劳动合同协议书
2014/04/14 职场文书
住房租房协议书
2014/08/20 职场文书
感谢信范文大全
2015/01/23 职场文书
个人培训总结
2015/03/05 职场文书
Python函数对象与闭包函数
2022/04/13 Python