2016-07-01 4 views
4

あなたのコンソールでこのコードを実行した場合:これはなぜ[JavaScript]エラーをスローしないのですか?

(function(){ 
    test: "hello"; 
})(); 

あるいはこの:

test: "hello"; 

を何も起こりませんし、エラーがスローされません。どうして?それは簡単ですか、 "さて... JavaScriptです...それを扱いますか?"

私の会社のインターンの中には、偶然(「=」を使用する)意味があります。それはおそらくエラーを投げるだろうと直面したとき、彼らはそれがないと言いました。

そして今私は好奇心が強いです。

答えて

12

JavaScriptでステートメント(文字列リテラルを作成してから何もしないものを含む)があれば、ラベルを付けることができます(ECMAScript 2015またはMDNを参照)。 breakまたはcontinueからの入れ子になったループを持たない限りはあまり役に立ちません。

(function(){  // Begin function expression 
    test:  // Label statement 
     "hello"; // Create a string and do nothing with it 
})();   // End function expression and invoke the created function 
関連する問題