eval を使ってみる

作成日:2001-04-30
最終更新日:

今や表計算ソフトはなくてはならないものになった。 特に Excel が強いのは承知で、 表計算ソフトの世話にはならずとも自分でできることはしたい。 そのための道具として、JavaScript を考えている。

ここでは、式を入れれば計算をするという機能を作ろう。 これには JavaScript の eval という関数が使える。 たとえば、式の欄に x * x * 3.14 と入れる。 これは半径 x の円の面積を求める式になる。 x の欄に 3 を入れて、「計算」ボタンをクリックすると、 答の欄は 28.26 となる。 この答はとりもなおさず、半径 3 の円の面積である。 これは、Excel でいう、ゴールシーク機能を実現する時の基礎技術となる。

値 ( x )

なお、式では下記の Math オブジェクトのプロパティとメソッドが使える。 ECMAScript (ECMA-262 Edition 5.1) による。

JavaScript での Math オブジェクトのプロパティ
プロパティ説明
E自然対数の底 e2.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
JavaScript での Math オブジェクトのメソッド
メソッド説明備考
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)

この機能を応用した一例として、数値積分のページがある。

リンク

  • ECMAScript Language Specifitaion (www.ecma-international.org)
  • まりんきょ学問所JavaScript 手習い > eval を使ってみる


    MARUYAMA Satosi