JavaScriptを使用した簡単な電卓の作り方【サンプルコード+解説付き】

今回ご紹介するのは、

JavaScriptで電卓を作る方法

について!様々な計算結果を正確に返す電卓は少し難易度が高めですが、内容を紐解いていくことで理解が深まると思います。

サンプルコード付きで詳しく説明するので、JavaScript学習中の方はスキルアップのために活用してみてくださいね。

JavaScriptで電卓を作る‐HTMLコード

まずはHTMLとCSSで見た目を整えていきましょう。見た目に関しては完全に好みなので、HTMLだけは同じものを利用し、CSSは自分好みにカスタマイズしてもOKです。

扱いやすさ、見やすさを重視して作成しましょう。

HTMLのみの実行画像

電卓のボタンはtableタグを用いて表形式にし、扱いやすさを向上させます。

tableタグの中にtrタグを5つ入れ、5行段落を作りました。trタグの中にはtdタグ4つずつ入れて(最上段は1つ)ボタンを作成します。

ボタン本体はクリックできるように、tdタグの中にinput type=”button”でボタンを作成しました。

対称に、テキストエリアとして作成したクラス名『display』は値が入力できないように、disabled属性を指定しています。

後にJavaScriptの関数を使用するために、クリック時に関数を呼び出すonclick属性を指定するのを忘れないでください。

まだこの時点ではボタンのサイズにばらつきがあり、扱いやすい電卓とは言えません。

JavaScriptで電卓を作る‐CSSコード

 

CSSを適用後の実行画像

CSSを適用させ、見た目の整理と扱いやすさの向上を行いました。ボタンのサイズも大きめに設定し、演算子などはボタンの色を変更しています。

またディスプレイ(液晶画面部分)も、通常の電卓のように他より窪んだように見える装飾を施しました。

ここでは確認できませんが、疑似クラス:hover:activeを使用することで、カーソルを上に乗せた時、クリックした時に見た目が変化するようになっています。

JavaScriptで電卓を作る‐JavaScriptコード

最後に肝心な計算処理部分を書き込みます。

今回はシンプルにget_calc()メソッドのみを作成し、その中で条件分岐をして計算を行います。条件分岐の内容は以下の通りです。

・=(イコール)がクリックされた場合
→evalメソッドで式を評価し、演算を行う
・C(クリア)がクリックされた場合
→テキストエリア内の値をすべて消去する
・それ以外
・×(乗法)と ÷(除法)がクリックされた場合
→ ×(乗法)、÷(除法)の場合は、演算子をそれぞれ*と/に置き換える
⇒値をテキストエリア内に加える

get_calc(btn)では引数を指定しました。onclick属性で関数名を呼び出す際onclick=”get_calc(this)”と指定しているため、関数にボタンそのものが渡されます。

関数にボタンそのものが渡されたため、値の取得はbtn.valueで簡単に行うことが出来るのです。

ここで注意して欲しいのが×と÷を使用した場合valueの値を書き換える必要があるため、一度valueの値を演算子に変更しています。この場合電卓の表示も変更されてしまうので、14,15行でvalue属性を再び上書きしました。

JavaScript電卓 完成版

See the Pen
電卓_完成版
by rabbittyu (@rabbittyu)
on CodePen.

まとめ

今回ご紹介した電卓は、あくまでも簡易的なものになります。より本格的な電卓に仕上げるためには、小数点の計算や場合によってはルートの計算なども導入する必要があります。

このコードを参考にどんどん発展させていくのは良いのですが、注意して欲しいのがブラウザには限界があるという点です。ブラウザで電卓を作る場合、どうしても限界が発生します。

電卓についてさらに勉強する際は、この点に注意し、挫折しないように取り組みましょう。

参考文献:
eval() – MDN Web Docs

BLOGコンテンツをパーソナライズします

あなたは現在「プログラミング学習者」ですか?