函数分为具名函数和匿名函数两类。函数的花括号里称为一个代码块。JS中函数为单线程的函数,执行了一个之后才会执行第二个;而setTimeout()这类的函数回再开一个线程,为异步的,会等JS的主线程函数执行完了之后,再会执行这个线程上的函数,不会阻塞主线程。
1、自执行函数
创建即执行的函数,可以创建块级作用域
(function(){
//..
})();
2、递归函数
自己在某些条件下调用自己的函数。如,递归函数来计算阶乘
function calc(num){
if(num<1){
return 1;
}else{
return num*calc(num-1);
}
}
console.log(calc(4));//24 一个典型的阶乘递归 1*2*3*4