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>
原文地址:https://www.cnblogs.com/yuzhongwusan/p/2280730.html