JavaScript를 실행하는 다음 Java 코드가 "Smith"를 여기 왜 반환하는지 설명 할 수 있습니까? 내가 평가가 악을 알고 있지만, 내가 자바 스크립트를 사용해야 할 상황 중 하나입니다 자바 코드 위와 동일한 출력을 제공문자열 분석을 수행하는 JavaScript eval의 출력을 이해하려고 시도합니다
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));
유사 자바 스크립트 코드 (jsFiddle는)
var jsSnippet = "var fullName = 'Joe Smith'; fullName.substring(fullName.indexOf(' ') + 1);";
document.write(eval(jsSnippet));
PS입니다 평가.
정확히 무엇이 문제입니까? 'Smith '의 반환 값은 여러분이 가진 JS에서 기대할 수있는 것입니다. – broofa
질문이 명확하지 않습니다. 동일한 JS의 스 니펫을 2 개 가지고 있으며 둘 다 동일한 값을 반환한다고합니다. 뭐가 문제 야? –
@broofa & Alex - JS 코드에는 문제가 없지만 eval에 return 문을 추가하지 않은 이유는 eval이 "Smith"를 반환하는 이유입니다. 왜 eval에 return 문을 추가하면 작동하지 않습니까? http://jsfiddle.net/hs2501/xaJg4/2/ – Hemant