0%

JavaScript---语句

语句

if语句

  • 第一种用法
1
2
3
4
5
if( i > 25 ) {
alert("Greater than 25.");
} else {
alert("Less than or equal to 25.");
}
  • 第二种用法
1
2
3
4
5
6
7
if (i > 25) {
alert("Greater than 25.");
} else if (i < 0) {
alert("Less than 0.");
} else {
alert("Between 0 and 25, inclusive.");
}

do-while语句

后测试语句,循环体的语句至少被执行一次

1
2
3
4
var i = 0;
do {
i += 2;
} while (i < 2); //此时代码块只能被执行一次,也是至少执行的一次,碰到判断条件停止循环

while语句

先判断再执行,代码块的语句有可能永远不能执行

1
2
3
4
var i = 0;
while(i < 10) {
i += 2;
} //先判断是否符合条件,再执行

for语句

前测试循环语句

1
2
3
4
for (initialzation; expression; post-loop-expression) 
{
statement;
}

示例:

1
2
3
4
5
var n = 10;
var j = 0;
for (var i = 0; i < n; i++) {
j += 1;
} //初始化i等于0,判断i小于n,执行代码快里的语句,再执行i++语句,后面依次循环

for-in语句

一种精准的迭代语句,可以用来枚举对象的属性

1
2
3
for ( property in expression) {
statement;
}

示例:

1
2
3
for (var propName in Window) {
document.write(propName);
}

break、continue、label语句

label 语句可以和break,continue在多重循环中搭配使用

1
label: statement;      //label语句的格式

break语句用来完全跳出循环,continue语句用来跳出大循环中的一次循环并开始下一次循环

示例:break

1
2
3
4
5
6
7
var number = 0;
for (var i = 0; i < 10; i++) {
for (var j = 0; j < 10; j++) {
if (i == 5 && j == 5) break; //number=55时,退出内层循环,所以少循环了5次
number++;
}
} //number最后的值为95

示例: continue

1
2
3
4
5
6
7
var number = 0;
for (var i = 0; i < 10; i++) {
for (var j =0; j < 10; j++) {
if ( i == 5 && j == 5) continue; //number = 55时,跳过一次内层循环,最后少循环了一次
number++;
}
} //number最后的值为99

示例:break label

1
2
3
4
5
6
7
8
9
10
var number = 0;
start:
for (var i = 0; i < 10; i++) {
for (var j = 0; j < 10; j++) {
if (i == 5 && j == 5){
break start;
}
number++;
}
}

循环跳到start标签处,所以number最后的值为55

示例:continue label

1
2
3
4
5
6
7
8
9
10
var number = 0;
start:
for (var i = 0; i < 10; i++) {
for (var j = 0; j < 10; j++) {
if (i == 5 && j == 5){
continue start;
}
number++;
}
} //number = 95

循环跳到label标签处,即就是当满足continue条件时,start标签处的外层循环跳过一次,直接从i= 5,j= 5处进入i = 6,j= 0处,所以number的值最后为95

with语句

with语句的作用是将代码的作用域设置到一个特定的对象中去

with语句可以简化代码,但是同时也会造成性能下降,严格模式下禁用

示例:未使用with语句

1
2
3
var qs = location.search.substring(1);
var hostName = location.hostname;
var url = location.href;

示例:使用with语句

1
2
3
4
5
with(location) {
var qs = search.substring(1);
var hostName = hostname;
var url = href;
}

switch语句

一个表达式,而需要对表达式的多个值进行不同的处理方式时使用

语法:

1
2
3
4
5
6
7
8
9
10
switch (expression) {
case value1: statement;
break;
case value2: statement;
break;
case value3: statement;
break;
default: statement;
break;
}

示例:

1
2
3
4
5
6
switch (i) {
case 2: alert("2");
break;
case 4: alert("4");
break;
}

可以混合case情形,注意要删去break

1
2
3
4
5
6
7
switch (i) {
case 2:
//合并两种情形
case 4:
alert("4");
break;
}

可以在 switch 语句中使用任何数据类型(在很多其他语言中只能使用数值),无论是字符串,还是对象都没有 问题。其次,每个 case的值不一定是常量,可以是变量,甚至是表达式

1
2
3
4
5
6
7
8
switch ("hello world") {
case "hello" +"world":
alert("Greeting was found.");
break;
case "goodbye":
alert("Closing was found.");
break;
}

switch表达式在与case匹配时,采用全等操作符,故不会发生类型转换,’10’不等于10