zoukankan      html  css  js  c++  java
  • JavaScript中函数声明优先于变量声明

    同一个标示符,先后用var和function声明它。最后它是什么呢?

    1
    2
    3
    4
    var a; // 声明一个变量,标识符为a
    function a() { // 声明一个函数,标示符也为a
    }
    alert(typeof a);

    显示的是“function”,即function的优先级高于var。

    有人觉得这是代码顺序执行的原因,即a被后执行的funcion覆盖了。好,将它们调换下。

    1
    2
    3
    4
    function a() {
    }
    var a;
    alert(typeof a);

    结果仍然显示的是“function”而非“undefined”。即函数声明优先于变量声明。

    我们把代码稍作修改,声明a时同时赋值。

    1
    2
    3
    4
    function a() {
    }
    var a = 1; // 注意此处
    alert(typeof a);

    这时显示的是“number”却不是“function”了。如果把var声明语句放在最上面,结果也是一样的

    1
    2
    3
    4
    var a = 1; // 注意此处
    function a() {
    }
    alert(typeof a);

    这相当于

    1
    2
    3
    4
    5
    function a() {
    }
    var a;
    a = 1; // 注意此处
    alert(typeof a);

    即把“var a = 1”拆分为两步。 a被重新赋值了,自然是最后的那个值。

    千里之行,始于足下
  • 相关阅读:
    mmap 函数
    poisx 文件锁
    三次握手的第三个ACK包丢了,TCP的处理方式
    unix 网络编程第八章 UDP
    STDIN_FILENO vs stdin
    unix 网络编程 第七章
    select 实现分析,poll epoll
    pselect 和 select
    export LANG="zh_CN.UTF-8"
    Unix 网络编程 I/O 模型 第六章
  • 原文地址:https://www.cnblogs.com/ajieyingqulvxing/p/4710919.html
Copyright © 2011-2022 走看看