zoukankan      html  css  js  c++  java
  • Javascript中的函数声明和函数表达式

     <script>
    ~function() {
        alert("第一种方式,使用特殊符号的奇淫技巧。");
    }();//第一种写法
    </script>
     <script>
    var foo = function() {
        alert("第二种方式");
    }();//第二种写法【不建议如此书写】
    </script>
      <pre>
      1.函数声明和函数表达式的区别,将函数赋值到一个变量名上就可以使其成为函数表单式
        function sum(a,b){alert(a+b);}-----函数声明
        var m=function sum(a,b){alert(a+b);}------函数表达式
      2.为什么去掉位操作符『~』后运行会报错,这是因为从语法解析的角度看,Javascript不允许在函数声明的后面直接使用小括号,
        而函数表达式则没有这个限制,通过在函数声明前面加上一个『~』操作符,就可以让语法解析器把后面看成是函数表达式,
        同样的,在函数声明前面加上『!,+,-』等操作符也是可行的。
      3.为什么不建议‘第二种写法’?
        虽然从语法解析的角度看没有问题,但是上面的代码存在弊端,它引入了一个变量,可能会污染现有的运行环境,带来潜在的问题。
        使用位操作符“~”的方法多少显得有点奇技淫巧,其实把函数声明用小括号套起来更易读【即第三种书写方式】
      4,第三种方式便于理解,即由alert('第三种方式便于理解'),书写为
         (alert)('第三种方式便于理解')

    <script>
    (function() {
        alert("第三种方式便于理解");
    })();//第三种写法
    </script>
      </pre>
  • 相关阅读:
    bzoj 1017 魔兽地图DotR
    poj 1322 chocolate
    bzoj 1045 糖果传递
    poj 3067 japan
    timus 1109 Conference(二分图匹配)
    URAL 1205 By the Underground or by Foot?(SPFA)
    URAL 1242 Werewolf(DFS)
    timus 1033 Labyrinth(BFS)
    URAL 1208 Legendary Teams Contest(DFS)
    URAL 1930 Ivan's Car(BFS)
  • 原文地址:https://www.cnblogs.com/yuzhongwusan/p/2280730.html
Copyright © 2011-2022 走看看