ある数値計算をするプログラムを作っています

そのプログラムではeval()を使っています


某書籍や色々javariptを勉強しているサイトを参考にさせていただいてますが
そこではeval()はあんまり使うなとか、普通は使わないとか書かれていました
多用すると動作が重くなるとか、危険だから何とか…


しかし、自分が作成しているプログラムではevalがどうしても必要となってしまいます
簡単なプログラム例です

function tas(){
gk=0
~~~~省略~~~~
gk=eval(a.value)+eval(b.value);

aとbに数字を入力して足し算の答えをを出力するプログラムの一部です
(この時、答えの出力先はプログラムを端折っていますが用意されています)

a=1 b=2に入力したとして
この時eval()を使わずa(b).valueのみにすると
答えが12と連なって表示されてしまいます

ただこの理由は自分でも解っています
そしてこれを数値として取得し計算させるためにはeval()が必要となってしまいます
現状、自分の知識と経験では…

もしeval()を使わずに数値を取得し計算する方法があれば教えて下さい

このQ&Aに関連する最新のQ&A

とは SID」に関するQ&A: SIDとは?

A 回答 (3件)

evalは文字列をjavascriptの式として評価するからコストが大きいということですかね。



parseInt(a.value)   整数型
parseFloat(a.value)  浮動小数点型
を使うか、a.value-0 して暗黙の型変換を行わせるか、かな。
    • good
    • 0
この回答へのお礼

回答ありがとうございます
勉強になります

お礼日時:2011/04/13 00:04

parseIntとか使えませんか?



http://www.24w.jp/study_contents.php?bid=javascr …
    • good
    • 0
この回答へのお礼

回答ありがとうございます
勉強になります

お礼日時:2011/04/13 00:04

この質問も、よう わからん。



>ただこの理由は自分でも解っています

わかってるなら、違うやり方でやっていると思うが・・・

>eval()はあんまり使うなとか、普通は使わないとか書かれていました

これは、だれが言ったのでしょう。そんな文献みたことありません。よくエセ達人が、ブログなどに書いてありますが、エセであることは明白。

よく習いたての人にたいしては、公式のような感じで、教える人がいるが、へたな人は、表現方法(ボキャブラリー)が乏しいだけ。

たくさん人の作ったの見れば、あ、なるほどこんな手があったか、て気がつくもの。まあ、頭の柔軟性て やつですね(気がつく頭が無いと気がつきませんがね。よくこれ何やっているのかわからない。なんて投稿している人がいるが、そのような人は向いていないんだよなあ。才能が無いと言う事。さっさと違う道にいかないと)。

わかっていないから、

>eval()が必要となってしまいます

といいはっているだけ。
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QJavascriptでのbuttonのname属性、もしくはid属性を取得

押されたボタンのname属性、もしくはid属性を取得し、処理を分けるプログラムを考えています。
<form>タグ自体にid属性は存在しますが、name属性はありません。
その状況で、押されたボタンのid、もしくはnameを取得するにはどうしたらいいでしょうか?

Aベストアンサー

<input type="button" onclick="ckBtn(this)" (その他のパラメーター)>

の様に書けば、呼ばれた関数で

function ckBtn(button) {
alert('id=' + button.id);
alert('name=' + button.getAttribute('name');
}

の様に元の inputタグの属性を得られます。

# 上のコードはチェックしてないのでスペルミスとかあるかも知れません。

参考URL の 「DOM-HTMLを操作するための仕組み」を見てください。

参考URL:http://javascriptist.net/docs/js_ref_ext.html

Qfunctionから別のfunctionを実行したい

よろしくお願いします

今JavaScriptで
function a(){
処理A
}
function b(){
処理B
}
function c(){
処理C
処理Aをして終わり
}
と言うことをしたいのですが

function a と同じコードをcに書くのが大変なので
function cからaを呼び出して実行することができないかと考えています

検索も色々してみたのですが
これと言った答えがなかったので質問しました
よろしくお願いします。

Aベストアンサー

他の箇所から、function a()をコールするときと同様に、function c()内でfunction a()をコールすることができます。

function c()
{
処理C
a();
}

Qjavascriptでセレクトボックスの"selected"を動的につ

javascriptでセレクトボックスの"selected"を動的につける方法について質問させてください。

現在、以下のようなフォームを作成しました。

<select name='year'>
<option value='2010'>2010</option>
<option value='2011'>2011</option>
</select>年

<select name='month'>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
<option value='6'>6</option>
<option value='7'>7</option>
<option value='8'>8</option>
<option value='9'>9</option>
<option value='10'>10</option>
<option value='11'>11</option>
<option value='12'>12</option>
</select>月

<select name='day'>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
<option value='6'>6</option>
<option value='7'>7</option>
<option value='8'>8</option>
<option value='9'>9</option>
<option value='10'>10</option>
<option value='11'>11</option>
<option value='12'>12</option>
<option value='13'>13</option>
<option value='14'>14</option>
<option value='15'>15</option>
<option value='16'>16</option>
<option value='17'>17</option>
<option value='18'>18</option>
<option value='19'>19</option>
<option value='20'>20</option>
<option value='21'>21</option>
<option value='22'>22</option>
<option value='23'>23</option>
<option value='24'>24</option>
<option value='25'>25</option>
<option value='26'>26</option>
<option value='27'>27</option>
<option value='28'>28</option>
<option value='29'>29</option>
<option value='30'>30</option>
<option value='31'>31</option>
</select>日


このセレクトボックスに、例えば今日の日付"2010年9月30日"だったら、それぞれの年、月、日の<option>に"selected"をつけたいのですが、javascriptではどのようにして実現したら良いのでしょうか?

よろしくお願いします。

javascriptでセレクトボックスの"selected"を動的につける方法について質問させてください。

現在、以下のようなフォームを作成しました。

<select name='year'>
<option value='2010'>2010</option>
<option value='2011'>2011</option>
</select>年

<select name='month'>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
<option value='6'>6</option>
<option value='7'>7</option>
<option value='8...続きを読む

Aベストアンサー

こんな感じで・・・

<script>
window.onload=function(){
var f=document.getElementById("f0");
var ymd=new Date();
checkSelect(f.elements["year"],ymd.getFullYear());
checkSelect(f.elements["month"],ymd.getMonth() +1);
checkSelect(f.elements["day"],ymd.getDate());
}
function checkSelect(obj,val){
for(var i=0;i<obj.length;i++){
if(obj[i].value==val){
obj[i].selected=true;
break;
}
}
}
</script>
<form id="f0">
<div>
<select name='year'>
<option value='2009'>2009</option>
<option value='2010'>2010</option>
<option value='2011'>2011</option>
</select>年

<select name='month'>
<option value='8'>8</option>
<option value='9'>9</option>
<option value='10'>10</option>
</select>月

<select name='day'>
<option value='29'>29</option>
<option value='30'>30</option>
<option value='31'>31</option>
</select>日
</div>
</form>

こんな感じで・・・

<script>
window.onload=function(){
var f=document.getElementById("f0");
var ymd=new Date();
checkSelect(f.elements["year"],ymd.getFullYear());
checkSelect(f.elements["month"],ymd.getMonth() +1);
checkSelect(f.elements["day"],ymd.getDate());
}
function checkSelect(obj,val){
for(var i=0;i<obj.length;i++){
if(obj[i].value==val){
obj[i].selected=true;
break;
}
}
}
</script>
<form id="f0">
<div>
<select name='year'>
<opt...続きを読む

Qジャバスクリプトが動かない

Windows7 64ビット IE9

次のスクリプトでボタンを押しても反応しません。
どこがおかしいのでしょうか。教えてください。



<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html>
<head>
<meta content="text/html; charset=Shift_JIS" http-equiv="content-type">
<title>貯血スケジュールの作成</title>

<script language="JavaScript">
<!--
function kotae(){
var kai = 37;
alert(kai);
}
//-->
</script>

</head><body>

<h3>問題</h3>
16+21= <button onclick="kotae()">答えを見る</button>
</body></html>

Aベストアンサー

buttonタグは必須でしょうか?
ブラウザによってはサブミットされてしまうので工夫が必要です。

対応1:falseを返す
<script>
function kotae(){
var kai = 37;
alert(kai);
return false;
}
</script>
<h3>問題</h3>
16+21= <button onclick="return kotae();">答えを見る</button>

対応2:inputを使う
<script>
function kotae(){
var kai = 37;
alert(kai);
}
</script>
<h3>問題</h3>
16+21= <input type="button" value="答えを見る" onclick="kotae();">


人気Q&Aランキング

おすすめ情報