function test() {
document.write('a');
document.write('b');
document.write('c');
} // 构造函数
if(1 > 0){
test(); // 调用函数
}
一、函数声明
function test() {}
1.命名函数表达式
var test = function abc(){}
调用的时候要写test()
函数名 test.name:abc
2.匿名函数表达式 --- 函数表达式
var test = function(){}
函数名 test.name:test
二、参数
实参传任意类型的值都可以
function test(a,b) // 相当于在函数内部声明了两个变量 a,b为形参
{
document.write(a + b);
}
test(1,2); //传参 使1赋给a 2赋给b 1,2为实参
1.形参多于实参
function demo(a,b,c,d){
document.write('a');
document.write('b');
document.write('c');
document.write('d');
}
demo(11,2,3);
打印 1123undefined
2.实参多于形参
function demo(a){
document.write('a');
}
demo(11,2,3);
打印 11
三、arguments
1.每个函数里都有一个放置实参的隐式类数组arguments叫实参列表
function demo(a) {
//arguments -- [11,2,3]
console.log(arguments);
// 打印数组[11,2,3]
console.log(arguments.length);
// 打印3
for(var i = 0;i < arguments.length; i++) {
console.log(arguments[i]);
}
// 利用arguments进行for循环
console.log(demo.length);
// 函数名.length可得形参的长度
}
demo(11,2,3);
2.不定参数实现求和功能
function sum() {
var result = 0;
for(var i = 0;i < arguments.length;i++) {
result += arguments[i];
}
console.log(result)
}
sum(1,2,3,4,5,6,7,8,9,10);
3.arguments和形参遵循一个变另一个也跟着变的映射规则
function sum(a,b) {
a = 2;
// console.log(arguments[0]); 打印2
arguments[0] = 3;
console.log(a);
// 打印3
}
sum(1,2);
arguments[]括号里是调用时传进来的实参
一开始有几个就只有几个不会增加减少
所以以下情况的赋值是失败的
function sum(a,b) {
b = 2;
console.log(arguments[1]);
// 打印undefined
}
sum(1);
4.return
(1)函数终止符
function sum(a,b) {
console.log('a');
return; // 打印 a 停止
console.log('b');
}
sum(1);
(2)返回值
function sum() {
return 123;
console.log('a');
// return既承担终止符的作用,也承担返回值的作用,所以不会打印字符a
}
var num = sum();
相当于给num赋值123