JS中的{}、()、自調用及()=>({})寫法含義


用途

  • {}
    包圍對象object
    包圍代碼塊code block(如方法體,或普通代碼塊等)。
  • ()
    • 包圍參數列表
    • 自調用表達式,包圍一些需要通過運算得出結果的代碼(其中包圍的代碼會執行一次)。
      函數表達式可以自調用(即自動運行一次)。
      如果表達式后面緊跟(),會自動調用。
      不能自調用聲明的函數,通過添加括號,來說明他是一個函數表達式。

經常可以見到很多用()包圍{}的地方,用於將{}內部的代碼執行一次,計算出結果。

demo

    • window.eval()
      可以見到eval('(' + value + ')')

    • 自調用函數

function foo() {console.log("hello");}    // 聲明了一個函數foo()
foo()        // 調用

// 自調用函數
(function bar() {console.log("world");})();    // 立刻執行一次函數。
bar    // 報錯,未定義。
    • 箭頭函數表達式(ES6)的返回值
      箭頭函數表達式x => x,表示function(x) {return x;}
      但如果返回值是object類型,則不能為x => {name:'JT'},,需要改為x => ({name:'JT'})
getObj = (num) => {age:num};    // getObj(22) 得不到對象返回值,為undefined。
getObj = (num) => ({age:num});    // getObj(22) 得到對象返回值,為{age:22}。

// 另外,在使用typeof查看箭頭函數表達式的類型的時候,也可以看到()的作用。
typeof x => x    // 語法錯誤。
typeof (x => x)    // "function"。使用()將箭頭函數表達式運行為一個結果|返回值。這個返回值是一個函數。然后用typeof判斷。
    • 創建匿名函數並立即執行
// function(str) {return str;} // 報錯:Uncaught SyntaxError: Unexpected token (

// 用()包圍代碼段。成為一個函數。
(function(str) {return str;}) // 函數后加(...args),得到的函數會執行一次。
(function(str) {return str;})("測試") // 得到函數
func = (function(str) {return str;}) // 直接得到函數執行一次的返回值
retValue = (function(str) {return str;})("測試");

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM