Javascript中的函式宣告和函數運算式

來源:互聯網
上載者:User
 <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>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.