JavaScript函数与作用域

JavaScript函数与作用域

1 函数特点

高内聚,低耦合

2 基本格式与命名规范

2.1 函数名首字母小写,后面的首字母均大写

1
2
3
4
function printHelloWorld(a) {
document.write("Hello, World!");
return a;
}

2.2 三种函数定义方式

直接定义函数表达式
function printHelloWorld() {
document.write(“Hello, World!”);
}
调用方式 printHelloWorld();

命名函数表达式
unction test = printHelloWorld() {
document.write(“Hello, World!”);
}
调用方式 test();

匿名函数表达式
function test = () {
document.write(“Hello, World!”);
}
调用方式 test();

3 参数

3.1 形参与实参

1
2
3
4
function add(x, y) {
var c = a + b;
document.write(c);
}

形参和实参数目可以不同,但会有一个数组arguments[] 存储实参列表,并且与最初传入的实参相对应

  • 形参 > 实参
    未给值形参为 undefined,arguments[]中只含有实参个数的参数,在函数体中改变多余的形参,arguments[]中的对应位置参数不变
  • 实参 > 形参
    后面实参舍弃,arguments[]中只含有实参个数的参数,在函数体中改变形参,arguments[]中的对应位置参数也变
1
2
3
4
function add(a, b, c) {
console.log(arguments);
}
add(1, 2, 3, 4);

形参和实参的利用

1
2
3
4
5
6
7
8
9
10
function add(a, b, c, d) {
if(add.length > arguments.length) {
console.log("形参多了");
} else if(add.length < arguments.length) {
console.log("实参多了");
} else {
console.log("形参和实参数目相等");
}
}
add(1, null, undefined, "acb");

不定参数个数求多个数字相加的结果

1
2
3
4
5
6
7
8
function add(a) {
var result = 0;
for(var tmp = 0; tmp < arguments.length; tmp++) {
result += arguments[tmp];
}
console.log(result);
}
add(1, 2, 3, 4);

将输入的数字逆序并输出对应的汉字形式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function reverse() {
var num = window.prompt("Please input the number:");
var str = "";
for(var i = num.length - 1; i >= 0; i --) {
str += transfer(num[i]);
}
document.write(str);
}
function transfer(target) {
switch(target) {
case "1" :
return "壹";
case "2" :
return "贰";
case "3" :
return "叁";
}
}
reverse();

4 作用域

全局变量,局部变量


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达,可以邮件至 xingshuaikun@163.com。

×

喜欢就点赞,疼爱就打赏