JavaScript函数的一些相关内容
函数
11.声明提升:
1.变量声明的提升:
使用var声明的变量,会提前到当前作用域的开始位置被声明,而在原来的位置
被赋值.
console.log(a); //undefined
var a = 1;
console.log(a); //1
2.函数的提升:
在当前作用域内声明的function函数,在被解析时会整体提升,该函数可以在
当前作用域内的任何位置被调用.
fn(); //hello
function fn(){
console.log("hello");
}
fn(); //hello
3.那么都会被提升,顺序是怎样的呢?
当函数名和变量重名,变量的提升更高,函数的提升在变量的下面,使得函数
生效
12.JS的编译和执行:
先检查语法错误:
语法错误,当前代码段不执行;
声明提升:
变量提升和函数提升,作用域内所有使用var声明的变量和非匿名函数;
开始编译:
逐行执行;
13.递归:
什么是递归?
就是在函数体内调用本函数;是一种调用模式,是一种逻辑程序基础的体现;
递归会消耗大量内存,在实际开发中很少使用.
如何使用?
简单的说就是找到“头”和“尾”;
注意:递归最重要的是终止条件。
举个栗子:
求5的阶乘:5!
function fn(n){
//递归终止条件,也就是“头”
if(n == 1){
return 1;
}
//递归终止条件,也就是“头”
//递归规律,也就是“尾”
else{
return n * fn(n-1);
}
//递归规律,也就是“尾”
}
console.log(fn(5)); //120
声明:
纯属个人总结,有错误欢迎大家指出,互相学习,谢谢。