eval を使ってみる |
作成日:2001-04-30 最終更新日: |
今や表計算ソフトはなくてはならないものになった。 特に Excel が強いのは承知で、 表計算ソフトの世話にはならずとも自分でできることはしたい。 そのための道具として、JavaScript を考えている。
ここでは、式を入れれば計算をするという機能を作ろう。 これには JavaScript の eval という関数が使える。 たとえば、式の欄に x * x * 3.14 と入れる。 これは半径 x の円の面積を求める式になる。 x の欄に 3 を入れて、「計算」ボタンをクリックすると、 答の欄は 28.26 となる。 この答はとりもなおさず、半径 3 の円の面積である。 これは、Excel でいう、ゴールシーク機能を実現する時の基礎技術となる。
なお、式では下記の Math オブジェクトのプロパティとメソッドが使える。 ECMAScript (ECMA-262 Edition 5.1) による。
| プロパティ | 説明 | 値 |
|---|---|---|
| E | 自然対数の底 e | 2.7182818284590452354 |
| LN10 | `x = 10`における 自然対数 `ln(x)` の値 | 2.302585092994046 |
| LN2 | `x = 2` における自然対数 `ln(x)` の値 | 0.6931471805599453 |
| LOG2E | `x = e` における底が 2 の対数 `log_2 x` の値 | 1.4426950408889634 |
| LOG10E | `x = e` における底が 10 の対数 `log_10 x` の値 | 0.4342944819032518 |
| PI | 円周率 `pi` | 3.1415926535897932 |
| SQRT1_2 | `sqrt (1/2)` | 0.7071067811865476 |
| SQRT2 | `sqrt (2)` | 1.4142135623730951 |
| メソッド | 説明 | 備考 |
|---|---|---|
| abs(x) | 絶対値 | |
| acos(x) | `arccos` | 定義域は `[0, pi]` |
| asin(x) | `arcsin` | 定義域は `[-pi/2, pi/2]` |
| atan(x) | `arctan` | 定義域は `[-pi/2, pi/2]` |
| atan2(y,x) | ||
| ceil(x) | ||
| cos(x) | ||
| exp(x) | ||
| floor(x) | ||
| log(x) | ||
| max([value1[, value2[, ...]]]) | ||
| min([value1[, value2[, ...]]]) | ||
| pow(x,y) | ||
| random() | ||
| round() | ||
| sin(x) | ||
| sqrt(x) | ||
| tan(x) |
この機能を応用した一例として、数値積分のページがある。
まりんきょ学問所 > JavaScript 手習い > eval を使ってみる