JavaScript
函数
定义
function sum(a,b){
return a+b
}
let sum = function(a,b){ //匿名函数
return a+b
}
递归函数
function sum(n){
if(n===1){
return 1
}
return n+sum(n-1)
}
斐波那契(Fibonacci)数列
function fib(num){
if(num<=1){
return 1
}
return fib(num-1)+fib(num-2)
}
argument 参数数组
function log() {
for (i = 0; i < arguments.length; i++) {
console.log(arguments[i])
}
}
log('abc', '123') //abc
//123
函数变量
function person() {
let name = '123'
function getName() {
return name
}
return getName
}
var getName = person()
console.log(getName)
console.log(getName())
函数 柯里化
-
普通函数
function addThreeNum(a, b, c) { return a + b + c } console.log(addThreeNum(1, 2, 3)) //6
-
函数柯里化
function addThreeNumCurry(a) {
return function(b) {
return function(c) {
return a + b + c
}
}
}
console.log(addThreeNumCurry(1)(2)(3)) //6
let twoNum = addThreeNumCurry(1)(2)
console.log(twoNum(4)) //7
函数柯里化的优点:可以固定前面的2位数
自执行函数
var x=10
(function(){
var x=20
console.log(x) //20
})()
console.log(x) 10
优点:防止命名冲突
回调函数
function request(cb){
console.log('回调开始')
cb("Success")
console.log('回调结束')
}
function callback(result){
console.log('执行回调')
console.log('回调结果:'+result)
}
request(callback)
可以用箭头函数简化,但是不能复用
request(result=>{
console.log('执行回调')
console.log('回调结果:'+result)
})
是不能复用
request(result=>{
console.log('执行回调')
console.log('回调结果:'+result)
})