浅谈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 相关文章推荐
AJAX跨域请求json数据的实现方法
Nov 11 Javascript
jquery实现弹出层效果实例
May 19 Javascript
详解AngularJS中module模块的导入导出
Dec 10 Javascript
如何消除inline-block属性带来的标签间间隙
Mar 31 Javascript
js实现页面跳转的几种方法小结
May 16 Javascript
JavaScript实现输入框与清空按钮联动效果
Sep 09 Javascript
vuejs父子组件通信的问题
Jan 11 Javascript
详解ElementUI之表单验证、数据绑定、路由跳转
Jun 21 Javascript
js弹性势能动画之抛物线运动实例详解
Jul 27 Javascript
Vue组件实例间的直接访问实现代码
Aug 20 Javascript
详解Jest结合Vue-test-utils使用的初步实践
Jun 27 Javascript
Jquery+AJAX实现无刷新上传并重命名文件操作示例【PHP后台接收】
May 29 jQuery
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基础学习小结
2011/04/17 PHP
记录mysql性能查询过程的使用方法
2013/05/02 PHP
PHP中mb_convert_encoding与iconv函数的深入解析
2013/06/21 PHP
JavaScript表单常用验证集合
2008/01/16 Javascript
浅谈页面装载js及性能分析方法
2014/12/09 Javascript
JavaScript将数字转换成大写中文的方法
2015/03/23 Javascript
javascript中this关键字详解
2016/12/12 Javascript
Javascript前端经典的面试题及答案
2017/03/14 Javascript
解决vue 引入子组件报错的问题
2018/09/06 Javascript
js限制输入框只能输入数字(onkeyup触发)
2018/09/28 Javascript
jQuery实现ajax的嵌套请求案例分析
2019/02/16 jQuery
js的继承方法小结(prototype、call、apply)(推荐)
2019/04/17 Javascript
layui 解决富文本框form表单提交为空的问题
2019/10/26 Javascript
javascript设计模式 ? 桥接模式原理与应用实例分析
2020/04/13 Javascript
[45:32]Liquid vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
python实现sublime3的less编译插件示例
2014/04/27 Python
Python中关键字is与==的区别简述
2014/07/31 Python
python使用PyGame播放Midi和Mp3文件的方法
2015/04/24 Python
Python3实战之爬虫抓取网易云音乐的热门评论
2017/10/09 Python
python读取word文档,插入mysql数据库的示例代码
2018/11/07 Python
浅析python3字符串格式化format()函数的简单用法
2018/12/07 Python
python使用递归的方式建立二叉树
2019/07/03 Python
Python 调用有道翻译接口实现翻译
2020/03/02 Python
浅谈keras通过model.fit_generator训练模型(节省内存)
2020/06/17 Python
python和go语言的区别是什么
2020/07/20 Python
python,Java,JavaScript实现indexOf
2020/09/09 Python
css3实现背景颜色渐变让图片不再是唯一的实现方式
2012/12/18 HTML / CSS
英国知名化妆品网站:Revolution Beauty(原TAM Beauty)
2018/02/28 全球购物
面向对象编程的优势是什么
2015/12/17 面试题
什么是事务?为什么需要事务?
2012/01/09 面试题
会计专业毕业生求职信分享
2014/01/03 职场文书
社会实践活动总结格式
2015/05/11 职场文书
大学生村官工作心得体会
2016/01/23 职场文书
员工试用期工作总结
2019/06/20 职场文书
Windows下redis下载、redis安装及使用教程
2021/06/02 Redis
Springboot如何使用logback实现多环境配置?
2021/06/16 Java/Android