函数(function)
- 定义
- 函数声明
- 函数表达式
- 组成形式
- 函数名称
- 参数
- 形参
- 实参
- 返回值
编程原则:高内聚,弱耦合(把相同功能的代码抽取出来,放到一个黑匣子里面,每次调用的时候,调用黑匣子就好了,不用在写了)
函数命名规范,小驼峰
js方法
// 函数名称
函数名.name();
// 形参数量
函数名.length;
// 实参数量
arguments.length;
// 实参内容
arguments
函数的定义形式
// 函数的定义形式
// 1.函数声明
function fun() {}
// 2.命名函数表达式
var fun= function abc() {}
// 匿名函数表达式 --函数表达式
var fun = function () {}
函数名称
// 函数的定义形式
// 1.函数声明
function fun() {}
fun.name();//fun
// 2.命名函数表达式
var fun= function abc() {}
fun.name();//abc
// 匿名函数表达式 --函数表达式
var fun = function () {}
fun.name();//fun
函数基本应用
// 函数基本应用
function fun() {
var a = 123;
var b = 234;
var c = a + b;
document.write(c);
}
fun();
fun();
fun();
形参/实参
// 形式参数
function sum(a, b) {
var c = a + b;
document.write(c);
}
// 实际参数
sun(1, 2);
sum(2, 4);
// 形参和实参可以不一样
function one(a, b, c) {
}
one(1);
function two(a) {
// arguments-- 实参列表
console.log(arguments);// [1, 2, 3]
for(int i = 0; i < arguments.length; i++){
console.log(arguments[i]);
}
// 形参长度--- 函数名称.length
}
two(1, 2, 3);
// 判断实参形参那个多
function parameter(a, b, c, d) {
if(parameter.length > arguments.length) {
console.log('形参多了');
}else if(parameter.length < arguments.length){
console.log('实参多了');
}else {
console.log('形参实参一样多');
}
}
parameter(1);
// 求和
function sum() {
var result = 0;
for(int i = 0; i < arguments.length; i++){
result += arguments[i];
}
console.log(result);
}
sun(1, 2, 3, 4);
// arguments 和 形参 一个变另一个也跟着变,两个指向的引用地址不是一个,映射关系相同,此情况只针对有实参的情况,特例:实参有一个,形参有两个,那么给第二个形参赋值后,arguments[1]是undefined
function mapping(a, b) {
// arguments [1, 2]
// var a = 1;
a = 3;
console.log(arguments[0]);// 3
arguments[0] = 4;
console.log(a);//4
// 情况二
b = 5;
console.log(arguments[1]);// undefined
}
// 情况一:
mapping(1, 2);
// 情况二:
mapping(1);
返回值
// 终止函数
function goBack(a, b){
console.log('a');
return ;
console.log('b');
}
// 返回变量
function goBackRe(a, b){
return a + b;
}
var a = goBackRe(1, 2);