当前位置: 首页 > news >正文

js循环判断的方法

js循环判断的方法

  • if语句
  • if else语句
  • if else if else if......
  • 三元表达式
  • switch
    • switch语句和if语句的区别
  • for循环
  • while循环
  • do while循环
  • for in
  • forEach
  • for of
  • 性能问题


if语句

条件满足就执行,不满足就不执行

if(条件){语句}

if else语句

条件满足,执行语句1,条件不满足,执行语句2

if(条件){语句1
} else{语句2
}

if else if else if…

	if (条件1) {语句1} else{语句2} if (条件2) {语句2} else{语句3}

三元表达式

条件1?语句2:语句3;
如果条件1为true,执行语句2。如果条件1为false,执行语句3。

var num=421;var num=123?console.log(密码正确) :console.log(密码错误)//输入num是否为123,如果是,输出密码正确,如果不是,输出密码错误
//输入值为421,显然输出反馈给用户的信息的是密码错误

switch

它用于基于不同的条件来执行不同的代码。当要针对变量设置一系列特定值的选项时,就可以使用 switch


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

switch语句和if语句的区别

switch…case语句通常处理case为比较确定值的情况,而if…else…语句更加灵活,常用于范围判断(大于、等于某个范围)。

switch语句进行条件判断后直接执行到程序的条件语句,而if…else…语句有几种条件,就得判断几次(从上到下依次判断)。

当分支比较少时,if…else…语句的执行效率比switch语句更高。

当分支比较多时,switch语句的执行效率比if…else…语句更高,结构也更清晰。


for循环

   for(初始化变量①; 条件表达式②; 操作表达式③ ){//循环体④}

初始化变量:其实就是用var声明一个普通的变量,并且这个变量通常是作为计数器使用。

条件表达式:用来决定每一次循环是否继续执行,也就是循环的终止条件。

操作表达式:每次循环最后执行的代码,经常用于更新计数器(递增或递减)。

循环体:一组被重复执行的语句。

执行流程:

  1. 初始化变量,初始化操作在整个 for 循环只会执行一次。
  2. 执行条件表达式,如果为 true,则执行循环体语句,否则退出循环,循环结束。
  3. 执行操作表达式,此时第一轮结束。
  4. 第二轮开始,直接去执行条件表达式(不再初始化变量),如果为 true,则去执行循环体 语句,否则退出循环。
  5. 继续执行操作表达式,第二轮结束。… 整体执行顺序为:① ② ④ ③ ② ④ ③ ② ④ ③ … ② 循环结束

while循环

    while (条件表达式) {//循环体代码}
  1. 先执行条件表达式,如果结果为 true,则执行循环体代码;
    如果为 false,则退出循环,执行后面代码

  2. 执行循环体代码

  3. 循环体代码执行完毕后,程序会继续判断执行条件表达式。

  4. while语句可以在条件表达式为真的前提下,循环执行指定的一段代码,直到表达式不为真时结束循环。


do while循环

do while 是先执行代码,在进行判断,所以 do while 至少执行一次。

do {//循环体代码 - 条件表达式为 true 时重复执行循环代码} while(条件表达式);

for in

常用于遍历对象
不能使用break,continue,return来控制循环

let arr = [{name: '张三'},{name: '李四'}];    for (let i in arr) {                    console.log(i);	//遍历下标 结果为  0  1} 

forEach

forEach用于遍历数组中的元素,并且会对数组中元素使用callback(),与map(),raduce()不同的是,它总返回一个undefined,并且不可以链式调用。
不能使用break,continue,return来控制循环

let arr = [{name: '张三'},{name: '李四'}];  arr.forEach((item,index)=>{console.log(index);})

for of

for—of不能遍历普通对象,因为普通对象没有Symbol.iterator属性,如果一个对象有Symbol.iterator属性,那么就可以使用for—of遍历。
常用于遍历array(数组)map(映射)set(集合)strings(字符串)
可以使用break,continue,return来控制循环

let arr = [{name: '张三'},{name: '李四'}];   for (let i of arr){console.log(i);}  

性能问题

forEach方法,for in方法,for of方法都来自于for循环。
它们只是底层进行不同的封装,虽然看起来简单,但是性能是没有for循环优秀的。
因为for循环是最底层,最基本,性能最优秀的一种遍历方式。但for循环一旦嵌套,比如冒泡排序,看起来是非常令人头疼的。
包括map()方法,sort()方法,都是针对不同数据类型,为了简单高效解决问题,进行了封装。但性能上说,for循环永远是最优秀的。

在这里插入图片描述

http://www.lryc.cn/news/33895.html

相关文章:

  • git快速入门(1)
  • 韩国绿芯1~16通道触摸芯片型号推荐
  • Go语言设计与实现 -- http服务器编程
  • MySQL-视图
  • 都工作3年了,怎么能不懂双亲委派呢?(带你手把手断点源码)
  • Hive 运行环境搭建
  • SAP ABAP 深度解析Smartform打印特殊符号等功能
  • React17+React Hook+TS4 最佳实践仿 Jira 企业级项目笔记
  • 35- tensorboard的使用 (PyTorch系列) (深度学习)
  • ChatGPT在工业领域的用法
  • 使用Chakra-UI封装简书的登录页面组件(React)
  • Three.js初试——基础概念(二)
  • Qt音视频开发21-mpv内核万能属性机制
  • C语言学生随机抽号演讲计分系统
  • Spring Boot 3.0系列【12】核心特性篇之任务调度
  • Java操作XML
  • 女神节灯笼祝福【HTML+CSS】
  • CUDA并行计算基础知识
  • 88. 合并两个有序数组
  • 卢益贵(码客):软件开发团队的管理要素
  • 中小企业的TO B蓝海,如何「掘金」?
  • C++ 算法主题系列之集结0-1背包问题的所有求解方案
  • 【Vue】Vue常见的6种指令
  • 计算机科学与技术(嵌入式)四年学习资料_文件目录树
  • 【java】Java 继承
  • 自媒体账号数据分析从何入手?
  • Clickhouse新版本JSON字段数据写入方式
  • HNU-电路与电子学-实验2
  • 从0开始学python -49
  • Spring MVC 详解(连接、获取参数、返回数据)