7
なぜ次のコードが有効なJavascriptコードですか?このコードが有効な理由: "(1、eval)( 'this')"
var global = (1,eval)('this');
alert(global);
なぜ次のコードが有効なJavascriptコードですか?このコードが有効な理由: "(1、eval)( 'this')"
var global = (1,eval)('this');
alert(global);
これは、comma operatorが第2オペランドを返し、両方を評価するためです。
あなたの質問のコードは同等です:
1;
var global = eval('this');
alert(global);
悲しいが、真... – powtac
あなたは説明できますかいくつかのリンクは、あまりにも本当に混乱して有用であろうことがあります。 –
@Sheikh、私は私の答えでMDNのドキュメントにリンクしました:)基本的に '(1、eval)'はカンマ演算子 '、'を '1'と' eval'に適用します。演算子は '1'を評価し、評価して' eval'を返します。したがって、 'foo =(1、eval)(something)'は '1と等価です。 foo = eval(何か); '。 –