2016-06-19 10 views
-1

ここでは、2つの異なるコードスニペットがあります。私は、それぞれの出力が何であるか、なぜ出力を生成するのかを知る必要があります。紛らわしい類似のjavascriptコードスニペットを理解する

var output = (function(x){ 
 
     delete x; 
 
     return x; 
 
     })(0); 
 
    
 
     console.log(output);

var x = 1; 
 
var output = (function(){ 
 
    delete x; 
 
    return x; 
 
    })(); 
 

 
    console.log(output);

+0

出力をテストしてみてください... – Li357

+0

@AndrewL - "* ...なぜ出力するのでしょうか?" – RobG

+0

私は知っていますが、出力に関しては、@ RobG – Li357

答えて

0

1)出力0。delete演算子は、オブジェクトからプロパティを削除するために使用されます。ここでxはオブジェクトではなくローカル変数です。削除演算子はローカル変数に影響を与えません。

2)出力1.ここでxはオブジェクトではなく、タイプ番号のグローバル変数です。

0

最初のスニペットは、引数、(呼び出されたときに関数に与えられた値)を使用する関数であり、与えられます。値0、2番目のスニペットは値1を格納するグローバル変数を使用します。

関連する問題