介绍循环之前,首先要说一下同样很重要的if-else结构,switch-case结构

①if-else结构
if(判断条件) {
条件为true时执行
}
else{
条件为false时执行
}
②if-else-if结构(阶梯if)
if(条件一){
条件一成立
}
else if( 条件二){
条件一不成立&&条件二成立
(else-if部分可以有多个)
}
else{
条件一不成立&&条件二不成立
}
③嵌套if结构
结构写法
if(条件一){
  条件一成立
if(条件二){
 
 
}
else{
条件一成立&&条件二不成立
}
}
else{
条件一不成立
}
要注意的是

if()中的表达式,运算之后结果应该是
①boolean: true为真,false为假
②string: 非空字符串为真,空字符串为假
③null / NaN /Undefined 全为假
④object类型 全为真
⑤number: 0为假,非零为真
Switch-Case结构
1..结构写法:
switch(表达式){
  case 常量表达式1:
  语句一;
  break;
  case 表达式2:
  语句二;
  break;
.......
  default:
  语句N
}
2.注意事项:
①switch()中的表达式以及每个case后的表达式,可以为任何JS支持的数据类型(对象和数组除外)
②case后边的所有常量表达式必须各不相同,否则,只会执行第一个。
③case后的常量可以是任何数据类型;同一个switch结构的不同case,可以是多种不同的数据类型;
④switch在进行判断的时候,采用的是全等===判断
⑤break;执行完case代码后,跳出当前switch结构。
若缺少break:从正确的case项开始,依次执行所有的case和default
⑥switch结构在判断时,只会判断一次正确答案。当遇到正确的case项后,将不会再判断后续项。依次往下执行
用法示例:输入一个月份,判断属于哪个季度
                        var mon=Number(prompt("请输入月份:"));
switch(parseInt((mon-1)/3)){
case 0:
document.write("第一季度");
break;
case 1:
document.write("第er二季度");
break;
case 2:
document.write("第三季度");
break;
case 3:
document.write("第四季度");
break;
}
好了,下边就是要说的非常重要的循环了;首先来说一下while循环
【循环结构的步骤】
①声明循环变量
②判断循环条件
③执行循环体(while大括号中的所有代码)操作
④改变循环变量
⑤循环执行②③④
【JS中循环条件支持的数据类型】
支持JS中的所有类型
①boolean: true为真,false为假
②string: 非空字符串为真,空字符串为假
③null / NaN /Undefined 全为假
④object类型 全为真
⑤number: 0为假,非零为真
至于do-while循环:
先执行,再判断;即便条件不成立,也先执行一次。
最后来说一下最常用的 for循环
for(初始化循环变量;循环条件;修改循环变量的值){
  
}
for循环有三个表达式①定义循环变量②判断循环条件③更新循环变量,之间用分号隔开。
三个表达式可省略,但分号不可省略
特点:先判断,再执行
②for循环三个表达式均可以由多部分组成,中间用逗号分隔。但第二部分判断要用&&连接,最终结果需要为真/假
例如:
for(n=1,j=5; n<=5; n++,j--){
}
 
 

循环控制语句
1.break:终止本层循环,继续进行循环后边的语句。
当eak只循环有多层时,br会跳过一层循环
2.continue:跳过本次循环,继续执行下次循环
对于for循环,continue执行后,继续执行循环变量更新语句n++
对于while do-while,continue执行后,继续执行循环条件判断;所以在这两个循环中使用时,必须注意:continue一定要在n++后边使用
【循环嵌套】
外层循环转一次,内层循环转一圈
下边我们做个经典的图形题:用*打印一个菱形
              var f,g;
for(f=1;f<=4;f++){
for(g=1;g<=4-f;g++){
document.write("&nbsp");
}
for(g=1;g<=2*f-1;g++){
document.write("*");
}
document.write("<br />");
}
for(f=4;f>0;f--){
for(g=4-f;g>=0;g--){
document.write("&nbsp");
}
for(g=2*f-4;g>=0;g--)
{
document.write("*")
}
document.write("<br />");
}

 简单总结一下:
【嵌套循环特点】
外层循环控制行数,内层循环控制每行元素个数
【图形题思路】
1.确定图形一共几行,即为外层循环次数;
2.确定每行有几种元素,代表有几个内层循环;
3.每种元素有几个,即为每个内层循环的次数;(通常找出每种元素个数与行号的关系式,即为当前内层循环的最大值(从一开始))

JS基础——循环很重要的更多相关文章

  1. JS基础循环语句练习

    最近这几天一直在做题做题做题,很恶心,很头疼,都快吐了,但是自己的逻辑还是初见成效的,很久不动脑了,有点锈住了,大家也一起来开发下自己的大脑 有关简单排序的小循环 <script> var ...

  2. JS基础-全方面掌握继承

    前言 上篇文章详细解析了原型.原型链的相关知识点,这篇文章讲的是和原型链有密切关联的继承,它是前端基础中很重要的一个知识点,它对于代码复用来说非常有用,本篇将详细解析JS中的各种继承方式和优缺点进行, ...

  3. 原生 js基础常用的判断和循环

    原生 js基础常用的判断和循环 以下部分是个人实践及和搜集的资料: 最常用的if判断语句: if (/* 条件表达式 */){ // 成立执行语句 } else { // 否则执行语句 } 原生js的 ...

  4. JS基础与循环

    JS 简介 [JS的三种方式] 1.HTML标签中内嵌JS <button onclick="javascript:alert('白痴')">呵呵呵</butto ...

  5. js 基础篇(点击事件轮播图的实现)

    轮播图在以后的应用中还是比较常见的,不需要多少行代码就能实现.但是在只掌握了js基础知识的情况下,怎么来用较少的而且逻辑又简单的方法来实现呢?下面来分析下几种不同的做法: 1.利用位移的方法来实现 首 ...

  6. Node.js基础与实战

    Node.js基础与实战 Node.jsJS高级进阶 NODE原理与解析 REPL交互环境 模块与NPM Buffer缓存区 fs文件操作 Stream流 TCP&UDP 异步编程 HTTP& ...

  7. js基础到精通全面教程--JS教程

    适合阅读范围:对JavaScript一无所知-离精通只差一步之遥的人 基础知识:HTML JavaScript就这么回事1:基础知识 1 创建脚本块 1: <script language=”J ...

  8. Node.js基础知识

    Node.js入门   Node.js     Node.js是一套用来编写高性能网络服务器的JavaScript工具包,一系列的变化由此开始.比较独特的是,Node.js会假设在POSIX环境下运行 ...

  9. js基础进阶--关于setTimeout的思考

    欢迎访问我的个人博客:http://www.xiaolongwu.cn 先热身 看看下面的额代码会打印出什么? for (var i = 0; i < 5; i++) { setTimeout( ...

随机推荐

  1. MySQL查询语句的45道练习

              一.设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表(四) ...

  2. U-Boot 内核 (一)

    1.首先安装Vmware,安装Ubuntu 15.04 (安装时记住用户名和密码) 2.终端命令Ctrl+Alt+T 3.进行准备工作 安装工具 sudo apt-get update sudo ap ...

  3. Shell中的算术运算(译)

    算术运算 尽管Shell中的变量被缺省地看做是string类型,而非number,但是Shell本身仍然支持算术运算.主要有以下5种方式. 1. declare 2. expr $ z=5 $ z=` ...

  4. 如何在container中编译dotnet的eShopOnContainers

    准备的软件   问题 Image下载问题 以下就是为啥要有最后一个软件(我是使用版): SQLSever for Linux 内存需求 需要编译Image   成功搞定 参考 Welcome to t ...

  5. 性能测试平台效率优化的一次经验(python版)

    在做性能测试平台的优化过程中,由于启动任务相对其他测试任务比较频繁,而目前30次两个包的交叉对比(30次)测试需要耗时30分钟整,因此打算优先对测试流程做一次优化,将测试时间消耗降低到20分钟. 由于 ...

  6. QQGame防专线中断系统介绍

    先说说背景 QQGame是一个全区全服的休闲类游戏平台和社区,主逻辑服务器部署在四大IDC,核心DB全部在深圳.对跨IDC的专线依赖度很高. 网平提供专线故障后切VPN的备份机制,当VPN也中断时QQ ...

  7. 【子非鱼】冒泡排序过程呈现之java内置GUI表示

    自己玩玩写写,排序的过程多么有趣,特别是把看着电脑吧一堆乱七八糟的数据排成有序组合的时候,看起来贼舒服,特别是强迫症患者.好了,话不多说上代码,也算是自己记录一下吧,没有什么技术含量但个人感觉比较有趣 ...

  8. VisualVM监控远程主机上的JAVA应用程序

    使用VisualVM监控远程主机上JAVA应用程序时,需要开启远程主机上的远程监控访问,或者在远程JAVA应用程序启动时,开启远程监控选项,两种方法,选择其中一种就可以开启远程监控功能,配置完成后就可 ...

  9. python编码问题之\"encode\"&\"decode\"

    python encode decode 编码 decode的作用是将其他编码的字符串转换成unicode编码,如str1.decode('gb2312'),表示将gb2312编码的字符串str1转换 ...

  10. MYSQL数据库-约束

    约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性.唯一性. MYSQL中,常用的几种约束: 约束类型: 主键 默认值 唯一 外键 非空 关键字: PRIMARY KEY DEF ...