JavaScript中思考do...while 和 while语句的区别
Do...while和while...do的区别在于对于临界值的测试上。当在执行的时候只选择临界值来测试时,你会发现do...while至少要执行一次,而while...do则一次都不会执行。但是,当不去考虑临界值的时候,do...while和while...do的执行结果是一样的。让我们用事实来说话吧:
只测试临界值:
<!DOCTYPE html>
<html>
<body>
<p>Try to practice while statement!</p>
<p id = "demo"></p>
<script>
var x = "";
var i = 0;
var x = "";
var i = 0;
while(i < 0)
{
x += "The number is " + i + "." + "<br>";
i ++;
document.getElementById("demo").innerHTML = x;
} do
{
x +="The number is " + i + "." + "<br>";
i++;
document.getElementById("demo").innerHTML = x;
}
while(i < 0);
</script>
</body>
</html>
尝试着只去测试临界值(i=0)时,你会发现只有do...while会输出,而while...do会在判断时直接不符合条件,这似乎很简单的逻辑,但有时候,也会让死钻牛角尖的我陷入混乱的状态。
不考虑临界值时只执行while语句:
<!DOCTYPE html>
<html>
<body>
<p>Try to practice while statement!</p>
<p id = "demo"></p>
<script>
var x = "";
var i = 0;
while(i < 5)
{
x += "The number is " + i + "." + "<br>";
i ++;
document.getElementById("demo").innerHTML = x;
}
</script>
</body>
</html>
不考虑临界值时只执行do...while语句:
<!DOCTYPE html>
<html>
<body>
<p>Try to practice do while statement!</p>
<p id = "demo"></p>
<script>
var x = "";
var i = 0;
do
{
x +="The number is " + i + "." + "<br>";
i++;
document.getElementById("demo").innerHTML = x;
}
while(i < 5);
</script>
</body>
</html>
你会发现此时他们的执行结果是一样的。所以在使用的时候不用再纠结是选哪种循环来执行。
说明:我目前所学习的所有例子都是来自于 http://www.w3schools.com.
JavaScript中思考do...while 和 while语句的区别的更多相关文章
- JavaScript 中定义变量时有无var声明的区别
关于JavaScript中定义变量时有无var声明的区别 var a=5; //正确 a=5; //正确 在javascript中,以上两种方法都是定义变量的正确方法.微软的Script56.CHM中 ...
- JavaScript中querySelector()和getElementById()(getXXXByXX)的区别
在日常开发中,使用JavaScript获取元素的时候,最常用的方法就是document.getElementById(getXXXByXX)方法.但是最近发现有很多地方使用的是querySelecto ...
- javaScript中的return,break,continue的区别
导语: javaScript中有三种方法可以跳出循环或者终止循环.分别为break.return.continue. 正文: 一.break break 会使得整个程序终止执行或者包含了最内层的循环或 ...
- JavaScript中instanceof与typeof运算符的用法及区别详细解析
JavaScript中的instanceof和typeof常被用来判断一个变量是什么类型的(实例),但它们的使用还是有区别的: typeof 运算符 返回一个用来表示表达式的数据类型的字符串. typ ...
- JavaScript中的三种弹出框的区别与使用
JavaScript中有三种原生的弹出框,分别是alert.confirm.prompt.分别表示弹出框.确认框.信息框. 以下是示例代码: <!DOCTYPE html> <htm ...
- javascript中的this在不同场景下的区别
javascript在初版的设计上存在失误,导致了这门语言在使用时,经验型写法并不能得到像其它几个流行语言一样预期.其中的this的使用就是一个典型. this在javascript中是由解释器注入的 ...
- javascript中break,continue和return语句用法小结:
Break语句会使程序立刻退出包含在最底层的循环或者退出一个switch语句,它是用来退出循环或者switch语句. 例如: <script type="text/javascript ...
- JavaScript 中 申明变量的方式--let 语句
let 语句 - 声明一个块范围变量. 语法 let 变量名 = 初始化值; 例子 "use strict"; let name = '赵敏'; (function opt(){ ...
- 在JavaScript中,++在前和++在后有什么区别
一.++可以与输出语句写在一起,++写在变量前和写在变量后不是一个意思++ i 和 i ++ 区别在于运算顺序和结合方向. 在JavaScript中有两种自加运算,其运算符均为 ++,功能为将运算符自 ...
随机推荐
- 51Nod 1004 n^n末尾数字 | 快速幂
#include "bits/stdc++.h" using namespace std; #define LL long long #define INF 0x3f3f3f3f3 ...
- HDU 5533Dancing Stars on Me 基础几何
Problem Description The sky was brushed clean by the wind and the stars were cold in a black sky. Wh ...
- python检测硬盘脚本
#!/usr/bin/env python # _*_coding:utf-8_*_ import os import sys import statvfs def main(): '''deamon ...
- Sass 基本特性-运算 感觉满满都是坑
Sass中的基本运算 一.加法 在 CSS 中能做运算的,到目前为止仅有 calc() 函数可行.但在 Sass 中,运算只是其基本特性之一. sass做加法运算是可以不考虑参数带单位,但需 ...
- python大数据挖掘系列之淘宝商城数据预处理实战
数据清洗: 所谓的数据清洗,就是把一些异常的.缺失的数据处理掉,处理掉不一定是说删除,而是说通过某些方法将这个值补充上去,数据清洗目的在于为了让我们数据的可靠,因为脏数据会对数据分析产生影响.拿到数据 ...
- MySQL 表和库删不掉,并且表也打不开,不能导出的情况
linux上的mysql中,最近遇到表和库删不掉,并且表也打不开,不能导出的情况. 在删除数据库时,出现以下错误: ERROR 1010 (HY000): Error dropping databas ...
- poj 2104 可持久化线段树
我们先离散化,然后根据权值建立线段树,假设我们现在有一颗权值线段树,表示在区间1-n中每个数出现了几次,那么我们可以二分的求出来这个区间的k大值,类似sbt的select操作,那么因为点的权值插入是无 ...
- H题 hdu 2520 我是菜鸟,我怕谁
题目大意:http://acm.hdu.edu.cn/showproblem.php?pid=2520 我是菜鸟,我怕谁 Time Limit: 2000/1000 MS (Java/Others) ...
- Part2-HttpClient官方教程-Chapter4-HTTP 认证
原文链接地址 HttpClient 提供对由 HTTP 标准规范定义的认证模式的完全支持.HttpClient 的认证框架可以扩展支持非标准的认证模式,比如 NTLM 和 SPNEGO. 4.1 用户 ...
- Python3 hashlib模块和hmac 模块(加密)
hashlib 是一个提供了一些流行的hash算法的 Python 标准库.其中所包括的算法有 md5, sha1, sha224, sha256, sha384, sha512等常用算法 MD5加密 ...