浅谈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 相关文章推荐
动态创建的表格单元格中的事件实现代码
Dec 30 Javascript
JavaScript中对象属性的添加和删除示例
May 12 Javascript
jquery结合CSS使用validate实现漂亮的验证
Jan 29 Javascript
深入理解JavaScript系列(42):设计模式之原型模式详解
Mar 04 Javascript
javascript事件冒泡和事件捕获详解
May 26 Javascript
jQuery+HTML5实现手机摇一摇换衣特效
Jun 05 Javascript
JS实现表单中checkbox对勾选中增加边框显示效果
Aug 21 Javascript
js实现图片放大和拖拽特效代码分享
Sep 05 Javascript
Angularjs单选改为多选的开发过程及问题解析
Feb 17 Javascript
使用jQuery和ajax代替iframe的方法(详解)
Apr 12 jQuery
JS请求servlet功能示例
Jun 01 Javascript
Node Express用法详解【安装、使用、路由、中间件、模板引擎等】
May 13 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
《DOTA3》开发工作已经开始 《DOTA3》将代替《DOTA2》
2021/03/06 DOTA
php实现网站插件机制的方法
2009/11/10 PHP
通过PHP修改Linux或Unix口令的方法分享
2012/01/30 PHP
Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法
2016/07/02 PHP
LNMP部署laravel以及xhprof安装使用教程
2017/09/14 PHP
Laravel事件监听器用法实例分析
2019/03/12 PHP
基于jQuery的图片左右无缝滚动插件
2012/05/23 Javascript
dwz 如何去掉ajaxloading具体代码
2013/05/22 Javascript
cookie的复制与使用记住用户名实现代码
2013/11/04 Javascript
seajs中模块的解析规则详解和模块使用总结
2014/03/12 Javascript
JQuery报错Uncaught TypeError: Illegal invocation的处理方法
2015/03/13 Javascript
BootStrap 实现各种样式的进度条效果
2016/12/07 Javascript
JS中实现函数return多个返回值的实例
2017/02/21 Javascript
详解如何在NodeJS项目中优雅的使用ES6
2017/04/22 NodeJs
Javascript实现倒计时时差效果
2017/05/18 Javascript
Vue封装的可编辑表格插件方法
2018/08/28 Javascript
基于vue循环列表时点击跳转页面的方法
2018/08/31 Javascript
axios携带cookie配置详解(axios+koa)
2018/12/28 Javascript
Vue+Koa2 打包后进行线上部署的教程详解
2019/07/31 Javascript
vue 使用插槽分发内容操作示例【单个插槽、具名插槽、作用域插槽】
2020/03/06 Javascript
VUE中setTimeout和setInterval自动销毁案例
2020/09/07 Javascript
如何在Express4.x中愉快地使用async的方法
2020/11/18 Javascript
[01:05:32]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#1COL VS Alliance第一局
2016/03/04 DOTA
[42:23]完美世界DOTA2联赛PWL S3 Forest vs Rebirth 第二场 12.10
2020/12/13 DOTA
Python中MySQLdb和torndb模块对MySQL的断连问题处理
2015/11/09 Python
Python嵌套式数据结构实例浅析
2019/03/05 Python
Python3.6+Django2.0以上 xadmin站点的配置和使用教程图解
2019/06/04 Python
Python文件操作模拟用户登陆代码实例
2020/06/09 Python
Python requests模块安装及使用教程图解
2020/06/30 Python
Python使用OpenPyXL处理Excel表格
2020/07/02 Python
EntityManager都有哪些方法
2013/11/01 面试题
致跳远运动员广播稿
2014/02/11 职场文书
励志演讲稿3分钟
2014/08/21 职场文书
2014年仓库工作总结
2014/11/20 职场文书
详解如何修改nginx的默认端口
2021/03/31 Servers
Docker容器harbor私有仓库部署和管理
2022/08/05 Servers