一、定义函数
1、函数声明方式
function sum(a, b) {
console.log(1+3);
}
sum(10, 20);
2、函数表达式方式
var add = function () {
console.log(1+3);
};
add();
3、使用Function构造函数
var add2 = new Function('console.log(1+3);');
add2();
在传参过程中不可以少传参数,这样系统就会报错
function sum(num1, num2) {
console.log(num1 + num2);
num1 = 0;
num2 = 0;
}
sum(100);
一种在不确定数组个数的情况下很好使用的获取数组的方法arguments对象(可以直接使用)
function sum(num1, num2,num3) {
// arguments对象
// console.log(arguments);
var value = 0;
for(var i=0; i < arguments.length; i++){
value += arguments[i];
}
console.log(value);
console.log(arguments.length);
console.log(sum.length);//形式参数的个数
if(arguments.length === sum.length){
}
}
sum(10, 20, 30, 100, 200, 100, 20);
二、回调函数(递归)即在函数内部继续调用函数
function fn(num1, num2, func) {
return func(num1, num2);//func是函数名
}
// 加减乘除函数
function add(a, b) {
return a + b;
}
function sub(a, b) {
return a - b;
}
function mul(a, b) {
return a * b;
}
function divide(a, b) {
return a / b;
}
console.log(fn(10, 20, add));//30
console.log(fn(10, 20, sub));//-10
console.log(fn(10, 20, mul));//200
console.log(fn(10, 20, divide));//0.5
三、函数的局部变量和全局变量
不加var的变量是全局变量所有同名变量都可以使用他的值,函数内部带var的变量是局部变量,只可以在函数内部使用
四、函数的作用域
在执行过程中首先在本作用域内找,找到了就不在看更大级别的作用域了
fun();
function fun(){
// 声明提前
var num;
console.log(num);//首先现在本作用域中找到了num但是由于变量声明提前但是值的声明并没有提前,所以找不到num的值。
num = 20;
}