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;
で書く