1.函数的定义方式
(1)、函数声明
function fn(){
console.log('this is a function')
}
(2)、函数表达式
var fn = function(){
console.log('赋值表达式函数')
}
(3)、内置构造函数的形式
var fn3 = new Function("num1", "num2", "return num1+num2");
console.log(fn3(2, 3)); //5
2.函数的调用方法
(1)、函数名()
var fn1 = function () {
console.log("函数名()");
}
window.fn1();
fn1();
(2)、自调用
(function..........)括号里边是函数就是自调用
var fn2 = (function () {
console.log("自调用");
})();
(3)、call()调用
fn1.call();
(4)、对象中的函数调用
var obj1 = {
name: "小刚",
say: function () {
console.log(this.name + "喜欢吃辣条!")
}
}
obj1.say();
(5)、数组中函数调用
(6)、函数作为参数的调用
function fn3(x) {
x();
}
fn3(function () { console.log("我是函数也是参数"); });
(7)、函数作为返回值的调用
function fn4() {
return function () { console.log("我是函数也是返回值!") }
}
fn4()();
3.闭包
(1)、定义
闭包就是能够读取其他函数内部变量的函数
闭包的用途:
可以在函数外部读取函数内部成员
让函数内成员始终存活在内存中
(2)、闭包之访问函数内部变量
关于闭包的例子
(3)、闭包之锁住变量
关于闭包的例子
(3)、闭包案例
一些关于闭包的例子
(4)、闭包案例二
4.函数递归
函数里边还有一个函数 递归到下边函数
5.斐波那契数列
是斐波那契数列由 0 和 1 开始,之后的斐波那契数列系数就由之前的两数相加。
常用的计算斐波那契数列的方法分为两大类:递归和循环。