• 締切済み

NULL値をゼロとして扱うには?

JavaScriptでNULL値をゼロとして扱いたいのですが、"parseFloat"や"eval"などで変換してもはゼロ数値として扱ってくれません。やはり、"NaN"や"Undefined"かどうか判断して、そうであった場合は"0"に変換するというステップが必要なのでしょうか? なんかスムーズじゃなくて納得できません。

みんなの回答

  • MAN_MA_RUI
  • ベストアンサー率41% (426/1024)
回答No.2

変換よりも判別のほうが簡単だと思いますよ^^ ifを使った条件分岐でnullを判別してください。 if([取得値] == null) { // 取得値が[null]のとき document.write("0"); } else { // [null]じゃないとき document.write([取得値]); } [=]が2つついていた場合、指定条件と一致するかどうかを判別します。 1つじゃおかしくなりますのでご注意を^^;

回答No.1

単純に0を足すとかはどうでしょう? var buff = null; alert(buff+0); これだと0が返ってきます。 が、buffに文字が入ると、"文字0"となってしまいますが・・・

関連するQ&A

  • JavaScriptのnullはいつ使う?

    JavaScriptにはnullという値がありますが、いつ使うのでしょうか。 値が定義されていない変数やプロパティには、undefinedが入っていますし、 undefinedを代入することもできます。 C#でのnullの使い方と同じように、undefinedが使えちゃってます。 ではnullはいつ使うのでしょう? undefinedではなくnullでなければダメなケースって何がありますか?

  • undefinedかnullかどう区別できますか?

    JavaScript の教科書に下記のように記載があったのですが、 >>> ページからアンカータグを取得するgetAnchorという関数があったとします。 その際、アンカータグが見つからなかったならば、何を返すべきでしょうか。undefined(未定義)は不自然です。 今度は「該当する値がなかった(=空であった)」という値を、意図して伝えようとしているので、nullを返すべきです。 関数で値が返されなかった場合はundefinedと聞いたのですが上記はそれに該当するように私は思ってしまうのですが、なぜ違うかわかりますか? 関数で値が返されなかった場合とはalert()のように引数がなかった場合という意味でしょうか? それともretunr 変数名などのreturnがない場合という意味でしょうか?

  • Null値が入れられない

    種別:Decimal(18,2) 属性:UNSIGNED NULL:はい デフォルト値:NULL のフィールドがあります。phpMyAdminを通じてデータを入力しております。Null値のチェックを入れれば良いのですが、空白のまま残したおいた場合には、デフォルト値であるNull値が格納されるものと思っておりましたが、空白ですと0.00に変換されてしまします。 また、同時に、スクリプトの方ではjqGridを使用しているのですが、こちらの方でデータ編集をする際には、Null値のチェックボタンはありませんので、空白のままで更新しなければなりません。上記と同様に、空白にしておくと、0.00に変換されてしまいます。 Null値を入れるためには、どのような方法があるのでしょうか? よろしくお願いします。

    • ベストアンサー
    • MySQL
  • javascriptで浮動小数点の問題

    javascriptで浮動小数点の問題を解決しつつevalをつかった電卓を作ることはできませんか? >>> //-が欲しい場合 var array2 = str.match(/-?[0-9]+\.?[0-9]*/g); for(var i = 0; i < array2.length; i++) { console.log(parseFloat(array2[i])); } な感じで数値を抜き出し 計算記号+-*/に従ってmathのメソッドを順次呼び出す関数を作成すればいいのです。 計算記号については抜き出した数値を文字列として数えれば抜き出せるはず。 このように教えてもらいましたが、正直難しすぎてさっぱりわかりません。 evalでは浮動小数点の問題は解決できないのでしょうか? 便利なライブラリなどもないでしょうか?

  • C++のNULLは意味があるの?

    タイトルの通りです。 0で全て済むのに、わざわざNULLを使う必要が分かりませんし、私は全く使った事がありません。 ただ0と書くと数値かポインターかすぐには分からない からというのは、あまり対した理由にはなりそうも無いし。 ほかの人がNULLを使っているのをそのまま参考にしたと言うのが多いかもしれないですね。

  • オブジェクト型とプリミティブ型について

    オブジェクト型とプリミティブ型について プリミティブ型は Javascriptにおけるプリミティブ型とは、下記は値そのものが入っている。 * 数値型 * 文字列型 * ブーリアン型 * null型 * undefined型 上記5つのどれかその物が入っている オブジェクト型は配列がこれなのはわかるのですがオブジェクトもオブジェクト型なのでしょうか?他にもありますか? こちらや値そのものが入っておらず、アドレスのみが入っているのですよね?

  • null 判定について

    javascriptに関して質問させて下さい。 accessのDBのデータをHTML上で表示・追加・削除・更新を行っています。 DB上のデータで空欄の項目を表示させたときに null が表示されます。 nullではなく空欄にしておきたいので、null判定チェックを 行っているのですが、ひっかかってくれない状態です。 ------------- var database; database = new ActiveXObject("ADODB.Connection"); database.Open("Driver={Microsoft Access Driver (*.mdb)}; DBQ=c:\\mydb.mdb;"); var mySql = "select 種別, 内容 from Aテーブル; var recordSet = database.Execute(mySql); var tempHtml = "種別=" + recordSet(0); if(recordSet(1) != null){ tempHtml = tempHtml + "<br>内容=" + recordSet(1); }else{ tempHtml = tempHtml + "<br>内容="; } (略) --------------- recordSet(0)=種別 recordSet(1)=内容 上記のように普通にnull判定をしてるつもりなのですが、 recordSet(1)=内容 が access上で空欄の場合=null もif文内に入り、 「null」という文字列が表記されます。 ※accessからとってきたデータではなく、  javascript内で null を設定した場合はチェックにひっかかっています。 var tmp = null; if(tmp == null){ alert("nullである"); } 何が悪いかお分かりになる方、ご回答お願いします。

  • Accessで数値型にNULLをInsertするとエラー

    AccessVBAで数値型にNULLをInsertするとエラー(3134)になりますが、 その項目は必須項目にはしたくないので、 Insertする前にNULLが飛んできます。 そういった場合は、NULLかどうか判定して明示的に0をセットしてからInsertする方法しかないでしょうか。 あくまで取扱う情報は数値なので、数値型にしたいのですが、 NULLの可能性もある場合はテキスト型にするのが一般的なのでしょうか。 何か良い方法がありましたら教えてください。 尚、まだDBにはテストデータしか入っていないので、テーブルの変更は問題ありません。

  • Nullまたはオブジェクトではありません。の対策

    Javascriptで以下のエラーが発生します。 'エラー: document.test_form.test_element.value'はNullまたはオブジェクトではありません。 この場合、ソースでは alert(document.test_form.test_element.value); としているのですが、以下のようにnullを使って分岐させるのが Javascriptの王道でしょうか? if (null != document.test_form.test_element){ alert(document.test_form.test_element.value); } よろしくお願いいたします。

  • 変数が無い場合は何も実行しないとしたい

    javascript.で変数が無い場合は何も実行しないとしたいのですが、返り値はundefinedになるのではないのでしょうか? if(comment4 !== undefined || comment4 !== null) { commentary4.innerHTML = obj.comment4; } このようにしてもcomment4 が存在しないとエラーが出てしまいます。