文章目录
  1. 1. JavaScript系列——语句和函数
    1. 1.1. 语句
      1. 1.1.1. if语句
      2. 1.1.2. do-while语句
      3. 1.1.3. while语句
      4. 1.1.4. for语句
      5. 1.1.5. for-in语句
      6. 1.1.6. label语句
      7. 1.1.7. with语句
      8. 1.1.8. swith语句
    2. 1.2. 函数

JavaScript系列——语句和函数

语句

if语句

1
2
3
4
5
6
7
8
var i = 30;
if (i > 10) {
alert("i 大于 25.");
} else if (i < 0) {
alert("i 小于 0.");
} else {
alert("i 在0 和 10 之间.");
}

do-while语句

1
2
3
4
5
6
var i = 0; 
do {
i += 3;
} while (i < 10);

alert(i) //i=12
do-while 这种后测试循环语句最常用于循环体中的代码至少要被执行一次的情形。

while语句

1
2
3
4
var i = 0;
while(i<10){
i+=3;
}

for语句

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var count = 10; 
for (var i = 0; i < count; i++){
alert(i);
}

for (;;) { // 无限循环
doSomething();
}

//for循环的while实现
var count = 10;
var i = 0;
for (; i < count; ){
alert(i);
i++;
}

for-in语句

1
2
3
4
5
6
7
8
9
10
11
12
13
14
var arr = [1,2,3]
for (i in arr){
alert(arr[i]);
}

//可以枚举对象的属性
for (var propName in window) {
document.write(propName);
}

var objs = {"name":"zhangsan","age":20,"sex":"man"};
for(name in objs){
console.log(name+"-->"+objs[name]);
}
如果表示要迭代的对象的变量值为  nullundefinedfor-in 语句会抛出错误。ECMAScript 5 更正了这一行为;对这种情况不再抛出错误,而只是不执行循环体。为了保证最大限度的兼容性,建议在使用 for-in 循环之前,先检测确认该对象的值不是 nullundefined.

label语句

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var num = 0;
outPoint:
for (var i = 0 ; i < 10 ; i++){
for (var j = 0 ; j < 10 ; j++){
if( i == 5 && j == 5 ){
break outPoint;
}
num++;
}
}
alert(num); // 循环在 i 为5,j 为5的时候跳出双循环,返回到outPoint层继续执行,输出 55


var num = 0;
outermost:
for (var i=0; i < 10; i++) {
for (var j=0; j < 10; j++) {
if (i == 5 && j == 5) {
continue outermost;
}
num++;
}
}
alert(num); //95

with语句

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

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

由于大量使用 with 语句会导致性能下降,同时也会给调试代码造成困难,因此
在开发大型应用程序时,不建议使用 with 语句。

swith语句

1
2
3
4
5
6
7
8
9
10
11
12
13
14
var num = 25; 
switch (true) {
case num < 0:
alert("Less than 0.");
break;
case num >= 0 && num <= 10:
alert("Between 0 and 10.");
break;
case num > 10 && num <= 20:
alert("Between 10 and 20.");
break;
default:
alert("More than 20.");
}
switch 语句在比较值时使用的是全等操作符,因此不会发生类型转换(例如,字符串"10"不等于数值 10

函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
function sum(num1, num2) { 
return num1 + num2;
alert("Hello world"); // 永远不会执行
}

//可以使用arguments获取函数的参数值,即使没有设置参数
function sayHi() {
alert("Hello " + arguments[0] + "," + arguments[1]);
}
sayHi("javascript","HAHA"); //Hello javascript,HAHA


function howManyArgs() {
alert(arguments.length);
}
howManyArgs("string", 45); //2
howManyArgs(); //0
howManyArgs(12); //1

//没有传递值的命名参数将自动被赋予 undefined 值。这就跟定义了变量但又没有初始化一样
//ECMAScript 中的所有参数传递的都是值,不可能通过引用传递参数


//函数没有重载
function addSomeNumber(num){
return num + 100;
}
function addSomeNumber(num) {
return num + 200;
}
var result = addSomeNumber(100); //300
文章目录
  1. 1. JavaScript系列——语句和函数
    1. 1.1. 语句
      1. 1.1.1. if语句
      2. 1.1.2. do-while语句
      3. 1.1.3. while语句
      4. 1.1.4. for语句
      5. 1.1.5. for-in语句
      6. 1.1.6. label语句
      7. 1.1.7. with语句
      8. 1.1.8. swith语句
    2. 1.2. 函数