0

JavaScriptを実行する次のJavaコードがここで「Smith」を返す理由を誰か説明できますか?

    ScriptEngineManager manager = new ScriptEngineManager();
    ScriptEngine engine = manager.getEngineByName("js");
    String jsSnippet = "var fullName = 'Joe Smith'; fullName.substring(fullName.indexOf(' ') + 1);";
    System.out.println(engine.eval(jsSnippet));

上記の Java コードと同じ出力を提供する同様の JavaScript コード ( jsFiddle ) は次のとおりです。

var jsSnippet = "var fullName = 'Joe Smith'; fullName.substring(fullName.indexOf(' ') + 1);";
document.write(eval(jsSnippet));

PS: eval が悪であることは知っていますが、これは JavaScript eval を使用しなければならない状況の 1 つです。

4

1 に答える 1

2

eval 関数は、渡された最後の式を評価し、その値を返します。Mozilla Developer Network のeval に関する関連セクションを参照してください。

于 2013-01-14T06:17:23.110 に答える