A quick, beginner-friendly page that shows how JavaScript does adding, subtracting, multiplying, dividing, remainders, and powers—plus when + joins strings, what happens with divide-by-zero, and how to avoid common decimal gotchas.
+JavaScript
myVal = 5 + 8;
// 5 足す 8 の結果を変数 myVal に代入。
myStr = "Hello," + "JavaScript";
// 文字列「Hello,」と「JavaScript」を結合して変数 myStr に代入。
-JavaScript
myVal = 5 - 8;
// 5 引く 8 の結果を変数 myVal に代入。
myNum = -myNum;
// 変数 myNum の値を反転(値が 8 の場合 -8、-8 の場合 8)。
*JavaScript
myVal = 5 * 8;
// 5 かける 8 の結果を変数 myVal に代入。
myVal = myVal * 5;
// 変数 myVal かける 5 の結果を変数 myVal に代入。
/JavaScript
myVal = 8 / 2;
// 8 割る 2 の結果を変数 myVal に代入。
myVal = myNum / myNum2;
// 「変数 myNum」割る「変数 myNum2」の結果を変数 myVal に代入。
%JavaScript
myVal = 12 % 5;
// 12 割る 5 の余りを変数 myVal に代入(myVal の値は 2)。
myNum = myVal % 5;
// 変数 myVal 割る 5 の余りを変数 myNum に代入。
++JavaScript
myVal = i++;
// 変数 myVal に変数 i の値を代入してから変数 i に 1 を加算。
myVal = ++i;
// 変数 i に 1 を加算してから変数 myVal に代入。
--JavaScript
myVal = i--;
// 変数 myVal に変数 i の値を代入してから変数 i から 1 を減算。
myVal = --i;
// 変数 i から 1 を減算してから変数 myVal に代入。
x と y に入れた数字をもとにそれぞれの計算(演算)を行います。
フォームに入力された値は文字列として扱われるため、Number() で数値に変換しておく。
HTML
<script>
function myCal() {
const xRaw = document.myForm.myX.value;
const yRaw = document.myForm.myY.value;
// まず「文字として連結」の結果(+ は文字列が混ざると連結)
document.myForm.myStr.value = xRaw + yRaw;
// 数へ変換(空や数字でない時は NaN)
const x = Number(xRaw);
const y = Number(yRaw);
const show = v => (Number.isFinite(v) ? String(v) : "");
document.myForm.plus.value = show(x + y);
document.myForm.minus.value = show(x - y);
document.myForm.mul.value = show(x * y);
document.myForm.div.value = show(x / y);
document.myForm.rem.value = show(x % y);
let xi = x;
let yd = y;
xi = xi + 1; // ++xi と同じ
yd = yd - 1; // --yd と同じ
document.myForm.inc.value = show(xi);
document.myForm.dec.value = show(yd);
}
</script>
<form name="myForm">
x = <input type="text" name="myX" size="8"><br>
y = <input type="text" name="myY" size="8"><br>
<input type="button" value="演算する" onclick="myCal()">
<hr>
文字列として連結 <input type="text" name="myStr" size="8"><br>
x + y = <input type="text" name="plus" size="8"><br>
x - y = <input type="text" name="minus" size="8"><br>
x * y = <input type="text" name="mul" size="8"><br>
x / y = <input type="text" name="div" size="8"><br>
x % y = <input type="text" name="rem" size="8"><br>
++x = <input type="text" name="inc" size="8"><br>
--y = <input type="text" name="dec" size="8">
</form>
+-*/Infinity / -Infinity、0/0 は NaN)%**2 ** 3 は 8)+x-x++/--+Number() や 単項+ で数に直す- * / %NaN)小数は誤差に注意(例:0.1 + 0.2 が 0.3 にならない)。表示は toFixed() が便利
BigInt と Number は一緒に計算できない(混ぜると TypeError)
+ は片方が文字列だと連結になります。数として足すなら Number("2") + Number("3") や +"2" + +"3" を使います。1/0 は Infinity、-1/0 は -Infinity、0/0 は NaN です。表示前に Number.isFinite() でチェックすると親切です。% は剰余です。符号は左側の数に依存します(例:-7 % 5 === -2)。i++ は「使ってから足す」、++i は「足してから使う」。** でOK。2 ** 3 と Math.pow(2, 3) は同じ意味です。toFixed()、計算は整数にスケールするなどの回避策があります。let/const で宣言BigInt と Number を混ぜた → どちらかに統一Number() で変換、Number.isFinite() で確認+ が連結 → 先に数値化してから加算i = i + 1; で書く