zoukankan      html  css  js  c++  java
  • 函数声明与函数表达式

    两者看着很像。

    函数声明:function 函数名(){}

    函数表达式:function 函数名(可写可不写)(){}  :命名函数表达式/匿名函数表达式

    举几个例子:

    function aaa(){}  :函数声明

    var a=function aaa(){}  :命名函数表达式

    var a = function(){}  :匿名函数表达式;

    (function aaa(){}) :表达式

    区别:

    1.函数表达式可以直接后面加括号执行,而函数声明不行

    function aaa(){alert(1);}() (错误)

    var a=function aaa(){alert(1);}()     (直接运行)

    2、  函数声明可以被提前解析出来

    if(true){function aaa(){alert(1);}}

    else{ function aaa(){alert(2);}};

    aaa();   执行结果不确定,可能 1,可能2,因为函数声明被预解析,aaa在if之前就被解析完了

    if(true){var a=function aaa(){alert(1);}}

    else{ var a= function aaa(){alert(2);}};

    a();   执行结果为1   先执行的if语句。

    3、  匿名函数与命名函数的区别

    var a=function aaa(){alert(1);}

    a(); 所有浏览器都支持

    aaa();非ie报错 但是把aaa放在函数里面 则可以。ie会将其解析为a()和aaa();

    (function aaa(){alert(1)})

    aaa()   非ie报错。

  • 相关阅读:
    H
    并查集
    H
    Supermarket (贪心 并查集)
    H
    M
    N-Find a way
    HDU 4035 Maze
    #386. 【UNR #3】鸽子固定器
    P4688 [Ynoi2016]掉进兔子洞
  • 原文地址:https://www.cnblogs.com/mian-bread/p/5193419.html
Copyright © 2011-2022 走看看