脑图请戳?[http://naotu.baidu.com/file/ea908fd3de13189fdc91c60b15256a5b?token=7c52e9f1f081f7fd]
函数是一段有特定功能的代码,可以通过函数名进行重复调用
语法结构
founction 函数名(){
// 函数体 ---- 一段代码
}
语法结构
var 变量名 = function 函数名(){
//函数体
}
函数调用语法
函数名();
案例: 求1-100之间所有数的和
function getSum() { //函数声明
var sum = 0;
for (var i = 1; i <= 100; i++) {
sum += i;
}
console.log(sum);
}
getSum();//函数调用
函数调用的特点
为什么要有参数
带参数的函数声明
function 函数名(形参1, 形参2, 形参3,... ){
//函数体
}
带参数的函数调用
function 函数名(实参1, 实参2, 实参3,...);
形参(形式参数)
实参(实际参数)
案例
function getSum(x, y){
var sum;
sum = x + y;
console.log(sum);
}
var a = 1;
var b = 3;
getSum(a,b);
// x, y 就是形式参数。
// a, b 就是实际参数。
// 相当于 把 a的值赋值给了 x, b的值赋值给了 y, 所以 x = a = 1; y = b = 3; 最后输出结果为4.
函数的调用结果就是返回值,因此我们可以直接对函数调用结果进行操作。函数通过return返回一个返回值。
返回值语法
function 函数名(形参1, 形参2, 形参3,...) {
//函数体
return 返回值;
}
用变量接收返回值
var 变量名 = 函数名(实参1, 实参2, 实参3,...);
案例
1. //-求一组数中的最大值
function getMax(arr) {
var max = arr[0];
for (var i = 1; i < arr.length; i++) {
if (max < arr[i]) {
max = arr[i];
}
}
return max;
}
2. // - 求阶乘 2! ===> n! ----> 1 * 2 * 3 * 4 *.....*n-1 *n
function getFactorial(n) {
var result = 1;
for (var i = 1; i <= n; i++) {
result *= i;
}
return result;
}
var factorial = getFactorial(5);
console.log(factorial);
3. // - 求1!+2!+3!+....+n!
function getFactorial(n) {
var result = 1;
for (var i = 1; i <= n; i++) {
result *= i;
}
return result;
}
function getSum(n) {
// 求1-n之间每一个数阶层的累加
var sum = 0;
for (var i = 1; i <= n; i++) {
//累加的是每一个数的阶乘
sum += getFactorial(i);
}
return sum;
}
console.log(getSum(5));
返回值详解
所有函数都内置了arguements的对象
arguments对象中存储了传递的所有的实参
arguments是一个伪数组,因此及可以进行遍历
可以获取函数调用时传入的实参
适用于形参个数不确定时使用
案例
function test(a, b, c) {
console.log(arguments);
}
test(5, 6, 8);
// 求任意个数的最大值
function getMax() {
var max = arguments[0];
for (var i = 1; i < arguments.length; i++) {
if (max < arguments[i]) {
max = arguments[i];
}
}
return max;
}
var max = (5, 90, 88, 888, 55555);
console.log(max);
// 求任意个数的和
function getSum() {
var sum = 0;
for (var i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
return sum;
}
var result = getSum(1, 2, 3);
console.log(result);
匿名函数
// 普通函数的声明
function 函数名() {
//函数体
}
//普通函数调用
函数名()
// 匿名函数的声明
function () {
//函数体
}
// 匿名函数的调用
var 变量名 = function();
//用变量名()进行调用
//自调用函数
(function () {
//函数体
})()
自调用函数
(function 变量名(){
console.log('我是自调用函数');
})()
函数作为参数时
function test(fn) {
//当我们调用函数却没有给参数时, 形参的值为undefined
console.log(fn);
fn();
}
console.log(test());
function test(fn) {
console.log(fn); // 11
}
function getSum(x, y) {
var sum = x + y;
return sum;
}
test(getSum(5, 6));
function test(a) {
var b = 5;
return function() {
console.log(a + b); // 7
}
}
var fn = test(2);
fn();
原文:https://www.cnblogs.com/1020-jj/p/10858919.html