JavaScriptを学ぼうとしていますが、ハードルに遭遇しました。答えが明白で、簡単な検索で到達できる場合は、事前にお詫び申し上げます。私はプログラミングとJavaScriptの初心者であり、どのような問い合わせを行うべきかわからない。
次のコードでは、関数はHTMLフォームから値を取得し、いくつかの処理を実行して、それらを送り返します。入力と出力のプロセスをテストしましたが、正しく機能しています。
function foo() {
var x = parseInt(document.formdata.fieldone.value);
var y = parseFloat(document.formdata.fieldtwo.value);
if (isNaN(y))
{ var z = x; }
else
{ var z = function(x, y) {
if ((y * (x / 100)) < 1) {
return (x + Math.ceil(y * (x / 100))); }
else if ((y * (x / 100)) > 1) {
return (x + Math.round(y * (x / 100))); }
else {
return 0; } } }
var bar = document.getElementById("output");
bar.innerHTML = z; }
問題は、条件ステートメントのelseブランチが無名関数を処理しようとしたときに、戻り値が割り当てられないことです。むしろ、関数全体を文字列として。つまり、HTMLページに次のように表示されます。
function(x、y){if((y *(x / 100))<1){return(x + Math.ceil(y *(x / 100))); } else if((y *(x / 100))> 1){return(x + Math.round(y *(x / 100))); } else {return 0; }}
ChromeとFirefoxでコードをテストしましたが、結果は同じです。
どんな助けでもありがたいです、そして前もってありがとう。