JavaScript函数模式详解
在javascript中,函数是一类对象,这表示他可以作为参数传递给其他函数;此外,函数还可以提供作用域。
js函数基础部分:javascript学习笔记(四)function函数部分
创建函数的语法
命名函数表达式
//命名函数表达式 varadd=functionadd(a,b){ returna+b; };
函数表达式
//又名匿名函数 varadd=function(a,b){ returna+b; };
函数的声明
functionfoo(){ //codehere } //这里可以不需要分号
在尾随的分号中,函数表达式应总是使用分号,而函数的声明中并不需要分号结尾.
函数声明与表达式
函数的提升(hoisting)
函数声明的行为并不等同于命名函数表达式,其区别在于提升(hoisting)行为,看下面例子:
<scripttype="text/javascript"> //全局函数 functionfoo(){alert("globalfoo!");} functionbar(){alert('globalbar');}
functionhoist(){ console.log(typeoffoo);//function console.log(typeofbar);//undefined
foo();//localfoo! bar();//TypeError:'undefined'isnotafunction
//变量foo以及实现者被提升 functionfoo(){ alert('localfoo!'); }
//仅变量bar被提升,函数实现部分并未被提升 varbar=function(){ alert('localbar!'); }; } hoist(); </script>