1.JavaScript条件语句
通常在写代码时,您总是需要为不同的决定来执行不同的动作。您可以在代码中使用条件语句来完
成该任务
在 JavaScript 中,我们可使用以下条件语句:
- 只有当指定条件为 true 时,使用该语句来执行代码
if...else 语句 - 当条件为 true 时执行代码,当条件为 false 时执行其他代码
if...else if....else 语句- 使用该语句来选择多个代码块之一来执行
switch 语句 - 使用该语句来选择多个代码块之一来执行
if 语句
只有当指定条件为 true 时,该语句才会执行代码
格式:
if (condition){
当条件为 true 时执行的代码
}
例如:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script>
var age=19;
if(age>=18){
alert("成年人!");
}
</script>
</head>
<body>
</body>
</html>
在这个格式中,没有 ..else..。您已经告诉浏览器只有在指定条件为 true 时才执行代码
if...else 语句
请使用 if....else 语句在条件为 true 时执行代码,在条件为 false 时执行其他代码。
格式:
if (condition){
当条件为 true 时执行的代码
}else{
当条件不为 true 时执行的代码
}
例如:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script>
var age=10;
if(age>=18){
alert("成年人")
}
else{
alert("未成年")
}
</script>
</head>
<body>
</body>
</html>
if...else if...else if...else if...else 语句
使用if...else if...else if...else if...else 语句来选择多个代码块之一来执行
格式:
if(判断条件1){
javascript代码1
}else if(判断条件2){
javascript代码2
}
...
else if(判断条件n){
javascript代码n
}else{
所有的判断条件都为false
}
例如:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script>
var num1=200;
var num2=12;
var op="/";
if(op=="+"){
alert(num1+"+"+num2+"="+(num1+num2));
}else if(op=="-"){
alert(num1+"-"+num2+"="+(num1-num2));
}else if(op=="*"){
alert(num1+"*"+num2+"="+(num1*num2));
}else if(op=="/"){
alert(num1+"*"+num2+"="+(num1*num2));
}else{
alert("没有对应的运算法则")
}
</script>
</head>
<body>
</body>
</html>
if语句的嵌套
格式:
if(判断条件1){
if(判断条件2){
javascript代码1
}else{
javascript代码2
}
}else{
if(判断条件3){
javascript代码3
}else{
javascript代码4
}
}
例如:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script>
var gra=70;
if(gra>=60){
if(gra<=100){
alert("及格");
}else{
alert("不及格");
}
}else{
if(gra>=0){
alert("不及格")
}else{
alert("不及格/出错")
}
}
</script>
</head>
<body>
</body>
</html>
switch 语句
使用 switch 语句来选择要执行的多个代码块之一
格式:
switch(n) {
case 1: 执行代码块 1 break;
case 2: 执行代码块 2 break;
default: 与 case 1 和 case 2 不同时执行的代码
}
工作原理:首先设置表达式 n(通常是一个变量)。随后表达式的值会与结构中的每个 case 的值
做比较。如果存在匹配,则与该 case 关联的代码块会被执行。请使用 break 来阻止代码自动地向
下一个 case 运行
例如:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script>
var num1=200;
var num2=20;
var op="+"
switch(op){
case "+": alert(num1+"+"+num2+"="+(num1+num2));
case "-": alert(num1+"-"+num2+"="+(num1-num2));
case "*": alert(num1+"*"+num2+"="+(num1*num2));break;
case "/": alert(num1+"/"+num2+"="+(num1/num2));
default: alert("没有对应的算法");
}
</script>
</head>
<body>
</body>
</html>
2.JavaScript 循环
想一遍又一遍地运行相同的代码,并且每次的值都不同,那么使用循环是很方便的
JavaScript 支持不同类型的循环:
for - 循环代码块一定的次数
for/in - 循环遍历对象的属性
while - 当指定的条件为 true 时循环指定的代码块
do/while - 同样当指定的条件为 true 时循环指定的代码块
for 循环
for 循环是您在希望创建循环时常会用到的工具。下面是 for 循环的语法:
for (语句 1; 语句 2; 语句 3){
被执行的代码块
}
语句 1
通常我们会使用语句 1 初始化循环中所用的变量 (var i=0)
语句 1 是可选的,也就是说不使用语句 1 也可以
语句 2
通常语句 2 用于评估初始变量的条件。如果语句 2 返回 true,则循环再次开始,如果返回 false,
则循环将结束
语句 3
通常语句 3 会增加初始变量的值。语句 3 也是可选的。语句 3 有多种用法。增量可以是负数 (i-
-),或者更大 (i=i+15)。语句 3 也可以省略(比如当循环内部有相应的代码时)
例如:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script>
for( var i=1;i<=6;i++){
document.write("<h"+i+">测试for语句</h"+i+">");
}
for( var i=6;i>=1;i--){
document.write("<h"+i+">测试for语句</h"+i+">");
}
</script>
</head>
<body>
</body>
</html>
for/In 循环
JavaScript for/in 语句循环遍历对象的属性
格式:
for(变量 in 数组/对象){
需要被循环执行的javascript代码
}
将in后面的数组/对象中的数据取出赋值给in前面的变量,
在需要被循环执行的javascript代码中使用从数组/对象中的取出的数据
for/in 循环访问数组的下标
例如:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script>
var names=["zhangsan","lisi","wangwu"];
for(var i=0;i<names.length;i++){
document.write("<h1>"+names[i]+"</h1>");
}
</script>
</head>
<body>
</body>
</html>
for/in 循环访问对象的属性/方法名称
例如:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script>
var student={
stuid:1001,
stuname:"lisi",
stuage:20,
test1: function(){},
test2: function(){}
}
for(var i in student){
document.write("<h4>"+i+"</h4>");
}
</script>
</head>
<body>
</body>
</html>
while循环语句
while 循环会在指定条件为真时循环执行代码块。
语法
while (条件){
需要执行的代码
}
格式上与for循环相比没有初始条件和循环增量/减量条件
如果需要初始条件【while循环语句之外】和循环增量/减量条件【{}中的最后一句】需要自己定义
先执行判断条件---true--{需要被循环执行的javascript代码}---判断条件 ---false---结束
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script>
var i=1;
while(i<=6){
document.write("<h"+i+">测试while循环语句</h"+i+">");
i++;
}
var j=6;
while(j>=1){
document.write("<h"+j+">测试while循环语句</h"+j+">");
j--;
}
</script>
</head>
<body>
</body>
</html>
如果忘记增加条件中所用变量的值,该循环永远不会结束。这可能导致浏览器崩溃
do/while 循环
do/while 循环是 while 循环的变体。该循环会在检查条件是否为真之前执行一次代码块,然后如果
条件为真的话,就会重复这个循环
语法
do{
需要执行的代码
}
while (条件);
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script>
var i=1;
do{
document.write("<h"+i+">测试do{}while()循环</h"+i+">");
i++
}while(i<=6)
</script></head>
<body>
</body>
</html>
使用 do/while 循环。该循环至少会执行一次,即使条件为 false 它也会执行一次,因为代码块会在
条件被测试前执行。别忘记增加条件中所用变量的值,否则循环永远不会结束
for循环与while和do{}while的区别
1.形式上的不同
for循环有初始条件;判断条件;循环增量/减量,while和do{}while只有判断条件
while循环如果需要初始条件【while循环语句之外】和循环增量/减量条件【{}中的最后一句】需要
自己定义
do{}while()如果需要初始条件【do{}while()循环语句之外】和循环增量/减量条件【do{}中的最后一句】需要自己定义
2.具体执行过程
for循环需要明确循环次数
while循环/do{}while()循环不需要明确循环次数
while与do{}while的区别
while循环先判断后执行,do{}while循环先执行后判断
初始判断条件的值为false时,do{}while循环比while循环多执行一次
3.JavaScript break 和 continue 语句
break 语句用于跳出循环
continue 用于跳过循环中的一个迭代
break 语句
break 语句可用于跳出循环
break 语句跳出循环后,会继续执行该循环之后的代码(如果有的话)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script>
var i=1;
while(i<=6){
if(i==3){
break;
}
document.write("<h"+i+">测试while循环语句--h"+i+"</h"+i+">");
i++
}
</script>
</head>
<body>
</body>
</html>
continue 语句
continue 语句中断循环中的迭代,如果出现了指定的条件,然后继续循环中的下一个迭代
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script>
for(var i=1;i<=6;i++){
if(i==3){
continue;
}
document.write("<h"+i+">测试while循环语句--h"+i+"</h"+i+">");
}
</script>
</head>
<body>
</body>
</html>
JavaScript 错误
当 JavaScript 引擎执行 JavaScript 代码时,会发生各种错误
可能是语法错误,通常是程序员造成的编码错误或错别字
可能是拼写错误或语言中缺少的功能(可能由于浏览器差异)
可能是由于来自服务器或用户的错误输出而导致的错误
当然,也可能是由于许多其他不可预知的因素
JavaScript try 和 catch
try 语句允许我们定义在执行时进行错误测试的代码块
catch 语句允许我们定义当 try 代码块发生错误时,所执行的代码块
JavaScript 语句 try 和 catch 是成对出现的
语法格式:
try {
... //异常的抛出
} catch(e) {
... //异常的捕获与处理
} finally {
... //结束处理
}
例如:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<script>
/*
try{
var num1="10";
var res=num1/0;
alert(res);
}catch(e){
alert(e.message);
}finally{
alert("程序执行有误错误都要执行的代码");
}
*/
//创建一个有指定存储空间的数组
function createArray(size){
try{
if(size<0){
throw "指定存储空间不能为负数";
}
}catch(e){
alert(e);
size=0;
}
var arr=new Array(size);
return arr;
}
var arrres= createArray(-4);
alert(arrres.length);
</script>
</head>
<body>
</body>
</html>