JS流程控制

这篇博客详细介绍了JavaScript中的流程控制,包括顺序、分支和三元表达式等,特别强调了switch与if...else if的区别。
摘要由CSDN通过智能技术生成

1.流程控制

流程控制代码按照一定结构顺序来执行

1.1.分为三种:

顺序结构,分支结构,循环结构

1.2.顺序流程控制

最普通的就是顺序流程控制,程序会按照代码的先后顺序,依次执行

1.3.分支流程控制

1.从上到下执行过程中,根据不同的条件,执行不同路径的代码,得到不同的结果
2.JS 里提供两种分支结构语句:if语句,switch语句
	--if语句
		if(条件表达式){
			//条件成立执行的代码
		}
	--if else(双分支语句)
		if(条件表达式){
			//[如果]条件成立,执行代码
		}else{
			//[否则]执行的代码
		}
	--if else if(多分支语句)
		if(条件表达式){
			语句1
		}else if(条件表达式2){
			语句2
		}else if(条件表达式3){
			语句3
		}else{
			上述条件都不成立,执行此处代码
		}

1.4.三元表达式

表达式1 ? 表达式2 :表达式3
如果表达式1为true,就返回表达式2的值,
如果表达式1为false,就返回表达式3的值

1.5.switch分支流程控制

swirch(表达式){
	case value1:
		表达式等于value1时,要执行的代码
		break
	case value2:
		表达式等于value2时,要执行的代码
		break
	default:
		表达式不等于任何一个value时要执行的代码
}

小提示⚠️:

1. switch后面括号可以是表达式或值。通常是一个变量
2. case,后面跟一个选项的表达式或者值,后面有个冒号
3. switch表达式中的值与结构中的case值做比较
4. 如果存在匹配全等(===),则与该case关联的代码块,就会被执行,并且在遇到break时停止,整个switch语句代码执行结束
5. 如果所有的case值和表达式的值不匹配,则执行default里的代码
注意:执行case里面的语句时,如果没有break,则继续执行下一个case里的语句

swich和 if else if 的区别

-- switch case 通常处理case为比较确定的值的情况,而if...else...语句更加灵活,常用语范围判断(大于,等于某个范围)
-- switch 语句进行条件判断后直接执行得到程序的条件语句,效率更高。而if else 有几种条件,就得判断多少次
-- 分支比较少时,if  else 的执行效率比switch 语句高
-- 分支较多时,switch语句的执行效率比较高,结构更清晰
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Stepify(node-stepify) 是一个简单易扩展的Node.js流程控制引擎,采用方法链(methods chain)的方式定制异步任务,使得Node.js工作流易于理解和维护。 目标是将复杂的任务进行拆分成多步完成,使得每一步的执行过程更加透明,化繁为简。 stepify特点 最基本的API的就3个:step(),done(),run(),简单容易理解。 精细的粒度划分(同时支持单/多任务),执行顺序可定制化。 每一个异步操作都经过特殊的封装,内部只需要关心这个异步的执行过程。 链式(chain)调用,代码逻辑看起来比较清晰。 灵活的回调函数定制和参数传递。 统一处理单个异步操作的异常,也可根据需要单独处理某个任务的异常。 最简单的用法 简单实现基于oauth2授权获取用户基本资料的例子: // Authorizing based on oauth2 workflowStepify()     .step('getCode', function(appId, rUri) {         var root = this;         request.get('[authorize_uri]', function(err, res, body) {             root.done(err, JSON.parse(body).code);         });     }, [appId], [redirectUri])     .step('getToken', function(code) {         var root = this;         request.post('[token_uri]', function(err, res, body) {             root.done(err, JSON.parse(body).access_token);         });     })     .step('getInfo', function(token) {         request.get('[info_uri]?token='\u00a0 \u00a0token,\u00a0function(err,\u00a0res,\u00a0body)\u00a0{\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0//\u00a0got\u00a0user\u00a0info,\u00a0pass\u00a0it\u00a0to\u00a0client\u00a0via\u00a0http\u00a0response\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0});\n\u00a0\u00a0\u00a0\u00a0})\n\u00a0\u00a0\u00a0\u00a0.run();\n\u591a\u4e2astep\u5171\u7528\u4e00\u4e2ahandle\u3001\u9759\u6001\u53c2\u6570\u3001\u52a8\u6001\u53c2\u6570\u4f20\u9012\u7684\u4f8b\u5b50\uff1a\nStepify()\n\u00a0\u00a0\u00a0\u00a0.step('read', __filename)     .step(function(buf) {         // buf is the buffer content of __filename         var root = this;         var writed = 'test.js';         // do more stuff with buf         // this demo just replace all spaces simply         buf = buf.toString().replace(/\s /g, '');         fs.writeFile(writed, buf, function(err) {             // writed is the name of target file,             // it will be passed into next step as the first argument             root.done(err, writed);         });     })     .
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值