码迷,mamicode.com
首页 > 其他好文 > 详细

函数声明与函数表达式

时间:2014-08-19 22:20:35      阅读:325      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   java   io   ar   cti   div   

先来看一段代码:

    <script type="text/javascript">
    var x=1;
    if(x===1){
        var b=function a(){
            alert(1)
        }
    }else{
        var b=function a(){
            alert(2)
        }
    };
    b();
    </script>

由于函数b是表达式,不会在代码执行之前被提升,所以结果是1。

假如将代码稍作改动:

<script type="text/javascript">
var x=1;
if(x==1){
    function a(){
        alert(1)
    }
}else{
    function a(){
        alert(2)
    }
};
a();
</script>

那结果是什么?

大部分浏览器(IE/chrome/欧朋/safari)都弹出2,唯独FF弹出1,事实上,上面的代码在ECMAScript中属于无效语法,javascript引擎会尝试修正错误,但FF的做法与其它浏览器不一致,所以不推荐这种写法,改成函数表达式即可。

 

函数声明与函数表达式,布布扣,bubuko.com

函数声明与函数表达式

标签:style   blog   color   java   io   ar   cti   div   

原文地址:http://www.cnblogs.com/wangmeijian/p/3923143.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!