javascript - 帮我看看一个预解释的问题啊!
ringa_lee
ringa_lee 2017-04-11 11:51:14
[JavaScript讨论组]
var fn = function(){
    alert(123)
};
function fn(){
    alert(456)
}
fn();
为什么输出的是123呢?
ringa_lee
ringa_lee

ringa_lee

全部回复(3)
阿神

声明提升,函数声明的提升优先级大于变量声明的提升,函数表达式不会被提升

以上代码,其处理过程是

function fn(){
    alert(456)
}
var fn;
fn = function(){
    alert(123)
};
fn();
巴扎黑

函数声明有两种方式 一种是字面量的形式 一种是函数直接的函数声明 在预处理阶段 函数声明会提升

大家讲道理

fn();    // alert(456)

var fn = "hello";

function fn(){
    alert(456)
}

fn; // "hello"

http://blog.csdn.net/u0126552...

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号