溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Javascript中怎么實現函數聲明和函數表達式

發布時間:2021-07-27 18:28:35 來源:億速云 閱讀:176 作者:Leah 欄目:web開發

Javascript中怎么實現函數聲明和函數表達式,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

Javascript是一種由Netscape的LiveScript發展而來的原型化繼承的面向對象的動態類型的區分大小寫的客戶端腳本語言,主要目的是為了解決服務器端語言,比如Perl,遺留的速度問題,為客戶提供更流暢的瀏覽效果。

Javascript有很多有趣的用法,在Google Code Search里能找到不少,舉一個例子:

<script>  ~function() {  alert("hello, world.");  }();  </script>

試一下就知道這段代碼的意思就是聲明一個函數,然后立刻執行,因為Javascript中的變量作用域是基于函數的,所以這樣可以避免變量污染,但這里的位運算符“~”乍一看讓人摸不到頭腦,如果去掉它再運行則會報錯:SyntaxError。

在闡述為什么之前,讓我們先來明確Javascript中的兩個概念:函數聲明和函數表達式:

先來看看什么樣的是函數聲明:

<script>  function()   {  alert("hello, world.");  };  function foo()   {  alert("hello, world.");  };  </script>

再來看看什么樣的是函數表達式:

<script>  var foo = function()   {  alert("hello, world.");  };  </script>

現在回頭看看文章開頭的問題,為什么去掉位操作符“~”后運行會報錯,這是因為從語法解析的角度看,Javascript不允許在函數聲明的后面直接使用小括號,而函數表達式則沒有這個限制,通過在函數聲明前面加上一個“~”操作符,就可以讓語法解析器把后面看成是函數表達式,同樣的,在函數聲明前面加上“!,+,-”等操作符也是可行的。

那我們為什么不使用下面這種函數表達式的方式呢?

<script>  var foo = function()   {  alert("hello, world.");  }();  </script>

雖然從語法解析的角度看沒有問題,但是上面的代碼存在弊端,它引入了一個變量,可能會污染現有的運行環境,帶來潛在的問題。

使用位操作符“~”的方法多少顯得有點奇技淫巧,其實把函數聲明用小括號套起來更易讀:

<script>  (function()   {  alert("hello, world.");  })();  </script>

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女