[JavaScript] Date.now と new Date().getTime() と +new Date のパフォーマンス比較
- 2015 8/4
JavaScript の Date.now と new Date().getTime() と +new Date の実行時間を jsPerf で確認してみました。
JavaScript の Date.now と new Date().getTime() と +new Date の実行時間を jsPerf で確認してみました。
Handlebars.js は registerHelper を使って、独自のヘルパーメソッドを登録することができます。
例えば、テンプレートで encodeURIComponent メソッドを使いたいときは、
Handlebars.registerHelper('encodeURIComponent', encodeURIComponent); |
という風にヘルパーを登録して、
<p>{{encodeURIComponent 'http://tryhandlebarsjs.com/'}}</p> |
とテンプレートに書けば、
<p>http%3A%2F%2Ftryhandlebarsjs.com%2F</p> |
というような HTML が出力されます。
ヘルパーが不要になったら、
Handlebars.unregisterHelper('encodeURIComponent'); |
で割り当て解除できます。
Node.js で jsdom を利用して数万件のウェブページをスクレイピングしたところ out of memory エラーが発生しました。
FATAL ERROR: CALL_AND_RETRY_2 Allocation failed - process out of memory |
jsdom.env メソッドに渡す callback メソッドの中で使用した window オブジェクトに関連するメモリを解放するために window.close() メソッドを呼ぶ必要があるそうです。
jsdom.env(html, function (errors, window) { // free memory associated with the window window.close(); }); |
ドキュメントに書いてある通りに使わないとダメだなぁと痛感しました・・・。
・jsdom and node.js leaking memory – Stack Overflow
・javascript – Memory leak in Node.js scraper – Stack Overflow
JavaScript で merge recursive なメソッドは lodash.merge を使うのが良さそう。
・_.merge – Lo-Dash documentation
説明とかはここには書かないので、参考情報を読むといいですよ。
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
Js2coffeeで arguments が arguments_ に変換されて、気付かずに実行してエラーが発生しました。
JavaScript
arguments.callee |
↓ js2coffeee
CoffeeScript
arguments_.callee |
と変換したときに、アンダースコアが suffix に付いてしまったようです・・・
JsDoc Toolkit 入門ということで色々メモ。
・JsDoc Toolkitによる開発効率向上を目指して - @IT
■ Mac に Homebrew でインストール
% brew install jsdoc-toolkit |
■ スタイリッシュで機能的な API ドキュメントを簡単に作成するためのテンプレート
・OrgaChem/JsDoc2-Template-Bootstrap · GitHub
・JavaScriptコーダー必見!クールなJsDoc用テンプレート「JsDoc2-Template-Bootstrap」 | DOTAPON Blog
Mac に Homebrew で SpiderMonkey をインストールしました。
$ brew install spidermonkey |
これで js コマンドでコンソールからJavaScript(SpiderMonkeyエンジンのもの)を実行することができます。
$ js js> print('お腹すいた' + '、と思ったか?'); お腹すいた、と思ったか? js> js> quit(); $ |
SpiderMonkey について知りたい方はこの辺を読んでください。
・SpiderMonkey (JavaScript-C) Engine
以上です。