カテゴリー : JavaScript

[JavaScript][BigDecimal] java.lang.RuntimeException: Unknown call signature for obj = new java.math.BigDecimal: object

JavaScript の bigdecimal.js ライブラリを使うときに数値じゃない値でインスタンス生成しようとすると例外が投げられるみたいです。

var bigdecimal = require("bigdecimal");
var obj = {};
 
new bigdecimal.BigDecimal(obj);
// java.lang.RuntimeException: Unknown call signature for obj = new java.math.BigDecimal: object

new bigdecimal.BigDecimal() の引数に渡す値はちゃんとチェックしてあげましょうというお話でした。


参考情報

how do i set a math context? · Issue #1 · iriscouch/bigdecimal.js

[JavaScript] java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result

JavaScript で浮動小数を計算する npm モジュール bigdecimal.js で、割り算を行う divide メソッド使ったらエラーが発生しました。

java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result

JavaScript

続きを読む

[jQuery] .data() で整数が丸められることがあるので .attr() で取得する

jQuery の .data() メソッドで整数の桁数が多いと丸められることがあるので .attr() で取得しましょう。

jQuery

続きを読む

[JavaScript] js2coffeee で arguments が arguments_ に変換される

Js2coffeeで arguments が arguments_ に変換されて、気付かずに実行してエラーが発生しました。

arguments_js2coffee

JavaScript

arguments.callee

↓ js2coffeee

CoffeeScript

arguments_.callee

と変換したときに、アンダースコアが suffix に付いてしまったようです・・・


参考情報

arguments – JavaScript | MDN

arguments.callee – JavaScript | MDN

The Little Book on CoffeeScript – The Bad Parts

jQuery Countdown で日数だけ表示させるスニペット

jQuery Countdown で日数だけ表示させるスニペットをご紹介します。

var countDownEndDate = new Date('2015-01-01T00:00:00+0900');
 
$('#js-countdown').countdown({
  until: countDownEndDate,
  compact: true,
  compactLabels: ['', '', '', ''],
  format: 'D'
});

これで、カウントダウンする日数の部分だけ表示されます。


参考情報

jQuery Countdown

jQuery Countdown Reference

jQuery Countdownの時刻表示形式を変更する

jQuery Countdown の時刻表示形式を変更するスニペットをメモ。

例えば、10 Days : 20 Hours : 30 Minutes : 40 Seconds という表示形式にしたい場合は、下記のように書きます。

$(selector).countdown({
  separator_days: ': ',
  separator: ': ',
  label_dd: ' Days ',
  label_hh: ' Hours ',
  label_mm: ' Minutes ',
  label_ss: ' Seconds '
});

参考情報

kemar/jquery.countdown

[JavaScript] moment.js で日付型 Date のタイムゾーンを JST に変更する

JavaScript で日付扱うライブラリ moment.js で日付型 Date のタイムゾーンを JST に変更するスニペットをご紹介します。

Moment.js

続きを読む

[JavaScript] 配列の中から最大値 or 最小値を取得する

JavaScript で、配列の中から最大値、または最小値を取得するスニペットをメモ。

var arr = [3, 1, 4, 1, 5, 9, 2, 6];
 
// 最大値
Math.max.apply(null, arr);  // → 9
 
// 最小値
Math.min.apply(null, arr);  // → 1

参考情報

【Javascript】配列の値の中から、最大値、最小値を求める(配列を引数に展開する) at softelメモ

[JavaScript] document.write() が動かない

JavaScript で、document.write() が動かないことがあって、色々と調べたメモ。

メモ: javascriptのdocument.write()がうまく動かない

読み込みのタイミングによっては外部 script のdocument.writeは無視される – はこべブログ ♨

外部 script の読み込みのタイミングによってはdocument.writeが無視される場合がある

Fenrir's BLog: Ajaxでdocument.writeするJavaScriptへの対策

document.write()の実行タイミングをずらす方法

JavaScript TUEEEEEEEってなるdocument.writeのテクニック – あさdev

[JavaScript] XMLHttpRequest で ajax GET

JavaScript にて、XMLHttpRequest で ajax GET する方法をメモ。

jQuery.ajax() が使えればカンタンに実装できるのですが、JavaScript縛りのときは下記のように書く必要があります。

var makeXMLHttpRequest = function(url) {
  var httpRequest;
 
  if (window.XMLHttpRequest) {
    // Mozilla, Safari, Chrome, ...
    httpRequest = new XMLHttpRequest();
    if (httpRequest.overrideMimeType) {
      httpRequest.overrideMimeType('text/xml');
    }
  } else if (window.ActiveXObject) {
    // IE
    try {
      httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e) {
      }
    }
  }
 
  if (!httpRequest) {
    // console.log('Cannot create XMLHTTP instance');
    return false;
  }
 
  httpRequest.onreadystatechange = function() {
    processResponse(httpRequest);
  };
  httpRequest.open('GET', url, true);
  httpRequest.send('');
};
 
var processResponse = function(httpRequest) {
  if (httpRequest.readyState == 4) {
    if (httpRequest.status == 200) {
      doSomething(httpRequest);
    } else {
      // error
    }
  }
};

以上です。


参考情報

Getting Started – AJAX | MDN

XMLHttpRequest の使い方 – WebOS Goodies