2017-08-30 112 views
1

最近我通過javascript函數的一個很好的例子。請在下面的代碼中找到。不同參數傳遞的Javascript函數

function add(a,b){ 
    return (a+b); 
} 
console.log("Summation is===>",add(1,2));  
console.log("Summation is===>",add((1),(2))); 

兩個打印輸出有3 是哪兩個函數參數之間的區別?第二個函數參數與第一個函數的區別

+1

LISP程序員創建了這些示例? – Teemu

回答

3

兩個函數參數有什麼區別?

沒有什麼。除了極少數例外*之外,將分組運算符(())圍繞已經分離的表達式完全不起作用。已經分離出12中的add(1,2)


*有些(所有嘿,也許不是?)的極少數例外的

  1. 如果你想把一個表達的return在單獨一行從返回如:

    return   // WRONG 
        expression; 
    

    你必須把()圍繞這樣的:

    return (
        expression 
    ); 
    

    ,以防止恐怖即自動插入分號從加入;return換行符在哪兒是,創造一個非常微妙的錯誤(因爲對自己的表現後return;是不是一個錯誤,雖然皮棉工具會希望能幫助你抓住它)。

  2. 如果您在使用上的箭頭功能簡潔的身體恢復的對象初始化的結果:

    () => {foo: "bar"} // WRONG 
    

    你必須包裝對象初始化中()避免初始化的{是作爲一個函數體的開始,像這樣:

    () => ({foo: "bar"}) 
    
  3. 如果你想開始一個函數表達式,其中一份聲明中預計,你必須把東西在前關鍵字,否則將啓動功能聲明而不是函數表達式。它可以是任何的幾件事情是告訴解析器從期待語句期待的表情切換,但()是一種常見的選擇,特別是對於IIFE:

    (function() { /*...*/})(); 
    

附註:您在return (a+b);中使用的分組運算符沒有任何效果,因爲它是一個孤立的表達式,您不處理上面的#1。