高程7-函数 表达式
Posted 追忆枉然
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了高程7-函数 表达式相关的知识,希望对你有一定的参考价值。
1.定义函数的两种方法:
1.函数声明
function functionName(arg0,arg1){
}
特点:函数预解析,代码执行的时候,可以先调用后执行,因为预解析;
a()
function a() {
console.log("s")
};
2.函数表达式
var functionName=function(arg0,arg1){
}
特点:创建的函数是匿名函数,函数名子是空字符串;与定义变量一样,
a()
var a=function (){
console.log("123");
} // Uncaught TypeError: a is not a function at
不要在if代码体中定义函数
2. 递归
function factorial(num){ if(num<=1){ return 1; }else{ return num*factorial(num-1) //也可以换成 return num*argument.callee(num-1);
} }
这里argument.callee(num-1)指的是正在执行的函数,使用argument.callee代替函数名,可以确保无论怎么样调用的函数都不会出问题,因此,在编写递归函数时,使用argument.callee比函数名可靠;
严格模式:
var fac=(function f(num){
if (num<=1){
return
}else{
return num* f(num-1)
}
)
严格模式,不能通过脚本访问argument.callee,访问这个属性会导致错误,不过,可以使用命名函数表达式来、
3.闭包
以上是关于高程7-函数 表达式的主要内容,如果未能解决你的问题,请参考以下文章