タイトルの通りでございます。
javascript
1a=1; 2eval("var hoge" + String(a)) = 1;
とした場合に自分的には
機械が
この文にはevalが入ってるから先に中身の文字列をコードとして評価しよう。となり
eval("var hoge" + String(a))
⇒var hoge1
と変換され
次に一文全体の評価
var hoge1 = 1
がされるので何の問題もないと思ってしまっています。
エラー内容はこの通りでした。
chromeconsole
1UUncaught ReferenceError: Invalid left-hand side in assignment 2 at <anonymous>:1:1
この解釈のどこが間違っていますか?
ちなみに↓のような使い方は出来ました。
a=1; eval("var hoge" + String(a) +" = 1;");
調べてみる限りevalを使うには「その一行全部を囲わないとダメ」のようなルールはないと思いますし、とても混乱しています。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/27 11:56
2018/07/27 23:09
2018/07/28 01:31