<html>
<script type="text/javascript">
function t1(){}
//t2=function(){}
/*这2种方式效果是不同的
t1是函数声明,全局内得到一个t1变量,值是function
t2只是一个赋值过程,值是右侧的表达式的返回结果,即函数
function(){}在js看来,就和3*3一样,是个表达式,返回一个结果
因此t1,t2两种方式在词法分析时,有着本质区别
前者在词法分析阶段就发挥作用
后者在运行阶段才发挥作用
*/
(function(window,undefined){alert(window);})(window);
</script>
</html>js函数声明和函数表达式
原文:http://www.blogjava.net/yangjunwei/archive/2014/12/06/421131.html