• 首页
  • 前端
    • HTML
    • CSS
    • Javascript
    • XML
    • AJAX
  • 前端框架
    • BootStrap
    • Jquery
  • PHP
    • 语法
    • 核心
    • 面向对象
    • PHP7
    • Socket
    • Swoole
  • 数据库
    • Mysql
    • Redis
    • Memcache
    • MongoDB
  • 优化
    • 优化方案
    • 页面静态化
    • Nginx
  • 后台框架与实战
    • Smarty
    • 源码Blog
    • TP3.2
    • TP3.2商城
    • TP5.0
    • TP5.0商城
    • Laravel
    • Laravel在线教育平台
    • Yii
    • Yii手机直播
    • CodeIgniter
    • Yaf
  • 移动开发
    • 微信公众号
    • 混合APP
  • 二次开发
    • DedeCMS
  • Linux
    • 基本操作
    • 环境搭建
  • 版本控制
    • GIT
    • SVN
  • Node.js
  • 资料库
没有结果
查看所有结果
  • 首页
  • 前端
    • HTML
    • CSS
    • Javascript
    • XML
    • AJAX
  • 前端框架
    • BootStrap
    • Jquery
  • PHP
    • 语法
    • 核心
    • 面向对象
    • PHP7
    • Socket
    • Swoole
  • 数据库
    • Mysql
    • Redis
    • Memcache
    • MongoDB
  • 优化
    • 优化方案
    • 页面静态化
    • Nginx
  • 后台框架与实战
    • Smarty
    • 源码Blog
    • TP3.2
    • TP3.2商城
    • TP5.0
    • TP5.0商城
    • Laravel
    • Laravel在线教育平台
    • Yii
    • Yii手机直播
    • CodeIgniter
    • Yaf
  • 移动开发
    • 微信公众号
    • 混合APP
  • 二次开发
    • DedeCMS
  • Linux
    • 基本操作
    • 环境搭建
  • 版本控制
    • GIT
    • SVN
  • Node.js
  • 资料库
没有结果
查看所有结果
没有结果
查看所有结果

JS初级(三)do-while、 for、 for-in、 while、 三元运算符、 循环、 最值、 流程控制、 跳转语句、 遍历

Mr.Lee 由 Mr.Lee
2018年5月19日
在 Javascript, 前端技术
0
JS初级(五)BOM、 DOM、 定时器、 对象、 时钟周期
0
分享
0
浏览

回顾

  1. 运算符

    1. 算术运算符

      1. 一元运算符:++ —
      2. 二元运算符 + – * / %
    2. 关系运算符:> >= < <= == !=
    3. 逻辑运算符:&& || !
    4. 赋值运算符:= += -+ *= /= %=
    5. 点运算符 document.write()
  2. 判断语句(条件语句)

    1. if:单分支
    2. if-else-:双分支
    3. else if:多分支
    4. switch-case :多路选择
  3. 数组:

    1. 内存中一组连续的空间
    2. 通过下标来区分各个空间,下标从0开始
    3. 声明数组:

      1. var 数组名=[]
      2. var 数组名=new Array([元素1,元素2]);
    4. 数组的方法:

      1. 数组名.sort() 数组排序
      2. 数组名.reverse():数组翻转
      3. 数组名.join(): 数组连接成字符串
      4. 数组.length: 数组的长度
  4. 函数

    1. 函数是一个代码块,可以多次调用,能够很容易的实现模块化编程
    2. 函数分为预定义函数和自定义函数
    3. 预定义函数:isNaN(),indexOf(),parseInt(),parseFloat(),select()
    4. 自定义函数语法

function 函数名([参数]){

//函数体

}

    1. 参数分为形式形数(形参)和实际参数(实参)
    2. 通过函数名来调用函数
    3. 函数定义的时候不执行,调用的时候才执行函数

三元运算符(?:)

语法:表达式?值1:值2

描述:如果表达式的结果为真,返回值1,否则返回值2

循环

重复执行称为循环

循环的分类

  1. for循环
  2. while循环
  3. do-while循环
  4. for-in循环

for循环

语法:

for(初始值;条件;增量){

//循环体

}

只要条件为真,就一直循环,一直循环到条件不成立为止

最简单的例题(输出十句字符串)

调整一下增量

分析题:

  1. 如下循环输出什么?

for(var j=1;j<=10;j–){

document.write(”);

}

答:死循环,j–,j永远小于10

  1. 如下循环输出什么?

for(var j=1;j<=10;){

alert(”);

}

答:死循环,因为j永远等于1,1永远小于10

  1. 如下循环输出什么?

for(var j=1;;j–){

alert(”);

}

答:没有条件永远为true,这也是死循环

  1. 一个典型的死循环

for(;;){

alert(‘我注意你好久了’);

}

脚下留心:循环必须要有出口,不能出现死循环。

思考:在一个循环了n次的循环中,初始值执行了几次?条件执行了几次?增量执行了几次?

答:初始值1次,条件n+1次,增量n次

for循环括号中可以放多个表达式

while循环

语法:

while(条件){

//代码

}

只要条件为true,就一直循环,一直循环到条件为false

简单的例题

多学一招:如果for和while的循环体就一句代码,大括号可以省略。

do-while

语法:

do

{

//循环体

}while(条件)

例题

可以更改成如下:

也可以更改如下:

for-in循环

for-in循环用了遍历数组和对象

语法:

for(变量 in 数组){

//循环体

}

脚下留心:变量保存的不是数组中的值,而是数组值的下标

例题:

例题(打印金字塔直线)

  1. 代码

<script type=”text/javascript”>

for(var i=20;i<=780;i+=40){

document.write(‘<hr width=”‘+i+’px”>’);

}

</script>

  1. 拼接后的字符串

  1. 运行结果

例题(遍历一维数组)

脚下留心:数组的长度是4,下标最大值是3,因为下标是从0开始的。

在上面的例题中,stu.length执行了n+1次,效率低了,其实stu.length只要执行一次就可以。

例题(求数组中的最大值)

思路:声明一个变量(num)用来保存最大值,首先假设第0个数据是最大的,然后从第一个元素开始依次和num比较,如果有个数大于num,就将这个数付给num,这样就保证num中的数据肯定是最大的。

实现代码:

例题:(求数组的平均值)

思路:声明一个变量(sum)用来保存数组的和,然后依次从第0个元素依次向后加,每次加的和都付给sum。

分析

i值 sum值

0 score[0]

1 score[0]+score[1]

2 score[0]+score[1]+score[2]

3 score[0]+score[1]+score[2]+score[3]

4 score[0]+score[1]+score[2]+score[3]+score[4]

跳转语句

  1. break(中断): 中断循环
  2. continue(继续):中断当前循环,进入下一个循环

例题一:

<script type=”text/javascript”>

for(var i=1;i<=10;i++){

if(i==5) //i==5的时候中断循环,输出4句

break; //中断循环

document.write(i+’锄禾日当午<br>’);

}

</script>

例题二:

总结流程控制语句的分类

  1. 判断语句

    1. if 单分支
    2. if-else 双分支
    3. else if 多分支
    4. switch-case 多路选择,多路判定
  2. 循环语句

    1. for
    2. while
    3. do-whlie
    4. for-in 就是用来遍历数组和对象
  3. 跳转语句

    1. break 中断循环
    2. continue 跳出当前循环,进入下一个循环

思考:for、while、do-while的区别?

答:

  1. 这三种循环是相通的,相互可以替代。
  2. 如果明确知道循环多少次首选for循环,while和do-while用于循环到条件不成立为止。
  3. While是先判断再执行,do-while先执行再判断
  4. While条件不成立就不执行,do-while条件不成立也要执行一次。

循环的例题

例题一:打印埃及图像

每个字母对应一个埃及图像,输入n或N退出

do-while实现(首选)

<style type=”text/css”>

body{

font-family:Webdings;

font-size:80px;

}

</style>

<script type=”text/javascript”>

do{

var str=prompt(‘请输入一个字符,输入n或N退出’,”);

if(str==’n’ || str==’N’)

break;

document.write(str);

}while(str!=’n’ && str!=’N’);

</script>

while循环实现

var str=prompt(‘请输入一个字符,输入n或N退出’,”);

while(str!=’n’ && str!=’N’){

document.write(str);

str=prompt(‘请输入一个字符,输入n或N退出’,”);

}

for循环实现

for(;;){

var str=prompt(‘请输入一个字符,输入n或N退出’,”);

if(str==’n’ || str==’N’)

break;

document.write(str);

}

例题二:从1加到100

for循环实现

分析

While循环实现

Do-while循环实现

例题三:(自动分行)

<style type=”text/css”>

table{

width: 780px;

margin: auto;

}

table,td{

border: #000 solid 1px;

border-collapse: collapse; /*collapse:塌陷*/

}

</style>

<table>

<tr>

<script type=”text/javascript”>

for(var i=1;i<=100;i++){

document.write(‘<td><img src=”images/’+i+’.bmp”/></td>’);

if(i%10==0) //一行放10个

document.write(‘</tr><tr>’);

}

</script>

</tr>

</table>

多重循环

两重以上称为多重循环,最常用的就是两重循环

例题(打印阶梯数字)

例题(遍历二维数组)

分析:

代码:

作业

  1. 去除字符串中的空格
  2. 九九乘法表
  3. 打印水仙花数(三位数abc a3+b3+c3=abc)
标签: do-whileforfor-inwhile三元运算符循环最值流程控制跳转语句遍历
上一篇文章

JS初级(四)事件、 传值与引用、 函数类型、 匿名函数、 转义字符

下一篇文章

JS初级(二)else if、 if、 if else、 switch、 函数、 判断语句、 数组、 更改颜色

下一篇文章
JS初级(五)BOM、 DOM、 定时器、 对象、 时钟周期

JS初级(二)else if、 if、 if else、 switch、 函数、 判断语句、 数组、 更改颜色

发表回复 取消回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Search

没有结果
查看所有结果

About Me

个人随笔

Winston Lee

Programmer

Hello & welcome to my blog! My name is Winston Lee and am a programmer and am keen on sharing.

Winston Lee

About Me

Hello & welcome to my blog! My name is Winston Lee and am a programmer and am keen on sharing.

Categories

  • AJAX
  • BootStrap
  • CodeIgniter
  • CSS
  • DedeCMS
  • GIT
  • HTML
  • Javascript
  • Jquery
  • Laravel
  • Laravel在线教育平台
  • Linux
  • Memcache
  • MongoDB
  • MVC
  • Mysql
  • Nginx
  • Node
  • PDO
  • PHP
  • PHP7
  • PHP基本语法
  • PHP核心编程
  • Redis
  • Smarty
  • Socket
  • SVN
  • Swoole
  • TP3.2
  • TP3.2商城
  • TP5.0
  • TP5.0商城
  • XML
  • Yaf
  • Yii
  • Yii手机直播
  • 二次开发
  • 优化方案
  • 前端技术
  • 前端框架
  • 后台框架
  • 基本操作
  • 微信公众号
  • 数据库
  • 未分类
  • 混合APP
  • 源码Blog项目
  • 版本控制
  • 环境搭建
  • 移动端开发
  • 网站优化
  • 资料
  • 面向对象
  • 面向对象编程
  • 页面静态化

Tags

DOM Json RBAC 事件 传参 函数 分页 判断语句 匿名函数 变量 图片上传 存储过程 安装 对象 封装 属性 接口 控制器 数据库操作 数据类型 数据表 数组 文件上传 无刷新分页 权限 标签 模型 正则 流程控制 目录结构 算法 类 索引 继承 缩略图 表关系 视图 路由 运算符 选择器 递归 配置 错误处理 页面静态化 验证码
  • 首页
  • 前端
  • 前端框架
  • PHP
  • 数据库
  • 优化
  • 后台框架与实战
  • 移动开发
  • 二次开发
  • Linux
  • 版本控制
  • Node.js
  • 资料库

沪公网安备31011502400873 | 沪ICP备2024050435号-3

没有结果
查看所有结果
  • 首页
  • 前端
    • HTML
    • CSS
    • Javascript
    • XML
    • AJAX
  • 前端框架
    • BootStrap
    • Jquery
  • PHP
    • 语法
    • 核心
    • 面向对象
    • PHP7
    • Socket
    • Swoole
  • 数据库
    • Mysql
    • Redis
    • Memcache
    • MongoDB
  • 优化
    • 优化方案
    • 页面静态化
    • Nginx
  • 后台框架与实战
    • Smarty
    • 源码Blog
    • TP3.2
    • TP3.2商城
    • TP5.0
    • TP5.0商城
    • Laravel
    • Laravel在线教育平台
    • Yii
    • Yii手机直播
    • CodeIgniter
    • Yaf
  • 移动开发
    • 微信公众号
    • 混合APP
  • 二次开发
    • DedeCMS
  • Linux
    • 基本操作
    • 环境搭建
  • 版本控制
    • GIT
    • SVN
  • Node.js
  • 资料库

沪公网安备31011502400873 | 沪ICP备2024050435号-3