質問: 'Math.floor( Math.random() * (' + value_max + ' - ' + value_min + ' + 1 )) + ' + value_min; ``` value_maxやvalue_minは引数であり,Math.floor関数とMath.random関数を使用していることは分かるのですが,やはりそれらをクオーテーションマークで囲っている理由がわかりません. code変数にどのようなことを代入しているのでしょうか? クオーテーションマークの使用の理由は何でしょうか? よろしくお願いいたします.
回答: google blocklyに関してちょっと気になったのでちょっとだけドキュメント見ただけなので間違ってるかもですが、 https://developers.google.com/blockly/guides/create-custom-blocks/caching-arguments にある通り ``` var listVar = Blockly.JavaScript.variableDB_.getDistinctName( 'temp_list', Blockly.Variables.NAME_TYPE); var code = 'var ' + listVar + ' = ' + arg0 + ';\n'; code += 'alert(' + listVar + '[' + listVar + '.length - 1]);\n'; ``` で ``` var temp_list = foo; alert(temp_list[temp_list.length - 1]); ``` こういう文字列をcodeに入れるようにしてるはずです。 これはJavaScriptプログラムなので、Blockly実行時に ``` var temp_list = foo; alert(temp_list[temp_list.length - 1]); ``` を実行するものだと思います。 (JavaScriptでJavaScriptプログラムを書いてる感じです) 文章で書きにくいですが ・javascriptでtest.jsファイルを作成して、そのファイルに動かしたいJavaScriptを記載する ・test.jsを実行する こういうことをしてます。 ※なのでセミコロンは不要なんじゃないかとかあるんですが・・・・闘いになりそうなのでここでは気にしないことにします。