シンプルな計算機を実装するためのネイティブ js

シンプルな計算機を実装するためのネイティブ js

この記事の例では、参考までに簡単な計算機を実装するためのjsの具体的なコードを共有しています。具体的な内容は次のとおりです。

最近、ブロガーは退屈していたので、js を使用して簡単な計算機を作成しました (ブロガーはフロントエンドではなく、バックエンドで作業しています >_<)。実際、フロントエンドの作業はとても楽しいです。自分で何かを作るのはとても充実感があります。さっそく、ソースコードをご紹介します。

<!DOCTYPE html>
<html>
    <ヘッド>
        <メタ文字セット="utf-8">
        <title>電卓</title>
        <スタイル>
            #b1{
                テキスト配置: 中央;
                背景色: 水色;
                幅: 650ピクセル;
                高さ: 650px;
                境界線: 1px 黒一色;
                左マージン: 400px;
                境界線の半径: 18px;

            }
            #b2{
                テキスト配置: 中央;
                幅: 300ピクセル;
                高さ: 80px;
                上マージン: 30px;
                フォントファミリ: "Microsoft YaHei";
                フォントサイズ: 20px;
                境界線の半径: 8px;
                アウトライン:なし;
            }
            ul{
                リストスタイルタイプ: なし;

            }
            li{
                フロート: 左;
                左マージン: 40px;
                上マージン: 30px;
            }
            li 入力{
                幅: 100ピクセル;
                高さ: 50px;
                境界線の半径: 8px;
                フォントファミリ: "Microsoft YaHei";
                フォントサイズ: 20px;
                アウトライン:なし;
            }
        li 入力:ホバー{
                背景色:赤;
            }
        </スタイル>

        <スクリプト>
        var beforeNum = 0;
        関数 addNum(a){
             beforeNum=document.getElementById("b2").value;
             var nowNum=beforeNum;
            if(beforeNum!=0){
             nowNum=beforeNum+a;    
            }それ以外{
                if(beforeNum.substring(beforeNum.length-2,beforeNum.length-1)=="."){
                    nowNum=beforeNum+a; 
                }
                 if(a!="+"&&a!="-"&&a!="*"&&a!="/"&&(beforeNum.substring(beforeNum.length-2,beforeNum.length-1)!=".")){
                 nowNum=a;  
                }
            }
            document.getElementById("b2").value=nowNum;
        }


        関数 jisuan(){
            document.getElementById("b2").value=eval(document.getElementById("b2").value);
        }

        関数clearNum(){
            ドキュメントの要素IDを取得する("b2")。値=0;
        }

        関数 backAgain(){
            beforeNum=document.getElementById("b2").value;
            if(beforeNum.length!=1){
            document.getElementById("b2").value=beforeNum.substring(0,beforeNum.length-1);
            }そうでない場合(beforeNum.length==1){
                ドキュメント.getElementById("b2").value=0;
            }
        }
        関数addPoint(b){
            beforeNum=document.getElementById("b2").value;
            if((beforeNum.indexOf(".")!=beforeNum.length-1)){
                document.getElementById("b2").value=beforeNum+b;
            }
        }
        関数 offCl(){
            document.getElementById("b2").value="";
        }
        </スクリプト>
    </head>
    <本文>
        <div id="b1">
            <p style="font-size: 20px;">オンラインのシンプルな計算機</p>
            <div><input id="b2" name="wenben" value="0"/></div>
            <div>
                <ul>

                    <li><input type="button" value="1" onclick="addNum(this.value);"/></li>
                    <li><input type="button" value="2" onclick="addNum(this.value);"/></li>
                    <li><input type="button" value="3" onclick="addNum(this.value);"/></li>
                    <li><input type="button" value="4" onclick="addNum(this.value);"/></li>
                    </ul>
                <ul>
                    <li><input type="button" value="5" onclick="addNum(this.value);"/></li>
                    <li><input type="button" value="6" onclick="addNum(this.value);"/></li>
                    <li><input type="button" value="7" onclick="addNum(this.value);"/></li>
                    <li><input type="button" value="8" onclick="addNum(this.value);"/></li>
                    </ul>
                <ul>
                    <li><input type="button" value="9" onclick="addNum(this.value);"/></li>
                    <li><input type="button" value="0" onclick="addNum(this.value);"/></li>
                    <li><input type="button" value="+" onclick="addNum(this.value);"/></li>
                    <li><input type="button" value="-" onclick="addNum(this.value);"/></li>
                </ul>
                    <ul>
                    <li><input type="button" value="*" onclick="addNum(this.value);"/></li>
                    <li><input type="button" value="/" onclick="addNum(this.value);"/></li>
                    <li><input type="button" value="." onclick="addPoint(this.value);"/></li>
                    <li><input type="button" value="=" onclick="jisuan();"/></li>
                </ul>
                </ul>
                    <ul>
                    <li><input type="button" value="戻る" onclick="backAgain();"/></li>
                    <li><input type="button" value="クリア" onclick="clearNum();"/></li>
                    <li><input type="button" value="シャットダウン" onclick="offCl();"/></li>
                </ul>
            </div>
        </div>
    </本文>
</html>

コード実行の効果図。

さらに、ブロガーは js 関数を記述する際に一連のアルゴリズム判定を実行し、いくつかの非標準アルゴリズムを除外しました。興味があれば、これらのアルゴリズム検証を拡張することができます。何かアイデアや提案があれば、ブロガーとコミュニケーションを取ることができます。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • HTML+JS に基づくシンプルな年齢計算ツールの実装
  • ネイティブ JavaScript を使用した Web 計算機の実装
  • JavaScriptで計算機機能を実現するプロセスの詳細な説明
  • JavaScriptはシンプルな計算機能を実装します
  • 計算機機能を実現するjsバージョン
  • JavaScript で簡単な計算機を実装する
  • JavaScript を使用した Web 計算機の作成
  • JavaScript の例 - 計算機の実装

<<:  Linux で特定のユーザーまたはユーザー グループに対して SSH を有効または無効にする方法

>>:  MySQL 5.7 および 8.0 データベースのルート パスワードを忘れた場合の解決策

推薦する

Vueはv-modelを使用してel-paginationコンポーネントのプロセス全体をカプセル化します。

v-model を使用してページング情報オブジェクトをバインドします。ページング情報オブジェクトに...

CSS に基づいて MaterialUI ボタン​​クリックアニメーションを実装し、それを React コンポーネントにカプセル化します。

序文フロントエンドフレームワークのヘビーユーザーとして、私はテクノロジーを選択する際にそのエコロジー...

Dockerで新しいイメージを手動で構築する方法

この記事では、Docker で新しいイメージを手動で構築する方法を紹介し、皆さんと共有します。詳細は...

display:olck/none を使用してメニューバーを作成する方法

display:bolck/none によるメニューバーの完成の効果 図 1:まず、完成したエフェク...

WeChatアプレットでvantフレームワークを使用するための具体的な手順

目次1. アプレットのプロジェクト ディレクトリを開き、ファイルの場所を開きます。 2. プロジェク...

Vite2.0の落とし穴

目次Viteプロジェクトビルドの最適化他のやっとこれは前回の記事の補足です。設定プロジェクトで遭遇し...

ホストNginx + Docker WordPress Mysqlを設定するための詳細な手順

環境Linux 3.10.0-693.el7.x86_64 Docker バージョン 18.09.0...

Node.jsとDenoの比較

目次序文Denoとは何ですか? Node.jsとの比較建築ESモジュール依存関係の管理TypeScr...

MySQL 最適化の概要 - クエリエントリの合計数

1. COUNT(*) と COUNT(COL) COUNT(*)は通常、主キーに対してインデックス...

W3C が推奨するモバイル Web マークアップ言語 XHTML Basic 1.1

W3C は最近、「 XHTML Basic1.1 」と「 Mobile Web Best Prac...

JavaScriptは両端キューを実装する

この記事の例では、両端キューを実装するためのJavaScriptの具体的なコードを参考までに共有して...

MySQL5.6.31 winx64.zip インストールと設定のチュートリアル

#1. ダウンロード # #2. ローカルに解凍し、必要な構成のmy*.iniを変更します。 #3....

dockerコンテナにvimをインストールするソリューション

目次物語の始まりvimをインストールし、hadoop-hive.envを編集します。不注意で回避しま...

JavaScriptカスタムオブジェクトメソッドの概要

目次1. オブジェクトを使用してオブジェクトを作成する2. コンストラクタを使用してオブジェクトを作...

SQLで同じフィールドの異なる値のデータ統計を実行する

適用シナリオ: シールのさまざまな状態に応じて、さまざまな状態のシールの数をカウントする必要がありま...