JavaScript ライブラリを使ってみる
前回作成した簡易電卓(JavaScript #2:簡単な電卓を作る)では、JavaScriptの eval関数 というのを使っていたが、これを mach.jsというパッケージの math.evaluate に変更してみる。
1. 変更によるメリット
2. math.jsライブラリインストール
3. ライブラリ読み込み
4. ライブラリの使用
1. 変更によるメリット
・安全:alert() などの不正なスクリプトを実行しようとしても、math.jsでは実行されない。
・高機能: 単なる四則演算だけでなく、sin(45 deg) や sqrt(16) といった関数も文字列として渡せば計算できる。
・誤差への強さ: JavaScript 標準の計算よりも数値の扱いが正確になる。
・高機能: 単なる四則演算だけでなく、sin(45 deg) や sqrt(16) といった関数も文字列として渡せば計算できる。
・誤差への強さ: JavaScript 標準の計算よりも数値の扱いが正確になる。
2. math.jsライブラリインストール
WSL(Ubuntu)でプロジェクトの作業ディレクトリ上で以下コマンドを実行しインストールする。
実行結果:
docker compose exec app npm install mathjs
実行結果:
xxx@xxx:~/docker/node.js$ docker compose exec app npm install mathjs
added 10 packages, and audited 96 packages in 2s
28 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
これで node_modules フォルダの中に math.js の本体が入り、package.json に「このプロジェクトは mathjs を使います」という記録が残る。3. ライブラリ読み込み
index.html の <script> タグの周辺を以下を追加する。
<script src="./node_modules/mathjs/lib/browser/math.js"></script>
4. ライブラリの使用
"display.value = eval(display.value);" をライブラリの関数に変更
const result = math.evaluate(display.value);
display.value = result;
display.value = result;
