JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティスを読んでいると、よく "truthy" とか "falsy" という言葉が出てきます。
たとえば、

そこで、null が falsy であり、オブジェクトが truthy であることを使って区別をするようにする。


こんな具合に使われています。
めちゃめちゃ英語に弱い自分でも true や false に関係していることは分かるのですが、でも直感的には「?」な感じが否めません…と思っていたのですが、「付録A ひどいパーツ」の「A.12 Falsy な値」の以下の記述を読んで、やっと理解できました。

JavaScript には falsy な値が驚くほどたくさんある。


つまり、偽と評価されることを falsy 、それ以外の値(つまり、真と評価される)ことを truthy と言うってことですね(・∀・)
モヤモヤが晴れてスッキリしたのですが、パラパラと読み返していたら「2章 文法」の if 文のところで、

if文は、条件式の値によって、プログラムの流れを変えることができる。条件に一致した際に実行されるブロックは、条件式が "truthy"、つまり真の値として評価された場合に実行される。そして、条件式が "falsy" だった場合、もし else ブロックが存在していれば、そちらが実行される。


思いっきり書かれていました…
相変わらず抜けすぎな自分を再確認する結果になっただけでした(;´Д`)

でも、"truthy", "falsy" という言葉は耳慣れない人が多いみたいですね。
なにしろ、JavaScript: The Good Parts 訳者の水野貴明さんのブログでも言及されているくらいですから。

truthyとfalsy - mizuno_takaakiの日記
JavaScriptに関する英語のドキュメントを読んでいて、「truthy」という言葉が出てきて、なんじゃこりゃ、と思ったら、「真偽値に変換すると真(True)になる」のことを「truthy」と表現するらしい。逆に偽になる場合はfalsyと呼ぶらしい。A re-introduction to JavaScript - MDC Docsに書かれていた。なるほど、そんな呼び方するのか。これってJavaScriptだけ?それとも他の言語でも使われるんだろうか。


自分も同じように気になってたので、「やっぱり気になるよなー」と思ったのを良く覚えています。
でも、他の言語でも使われるのかどうかというのは今でも「?」で、すごく気になっていますが(;´Д`)

そんな、一時期気になっていた truthy と falsy な話でした。
それにしても、Douglas Crockford さんが書かれているとおり、JavaScript には falsy な値が驚くほどたくさんあるのですよね。
この多さこそが "falsy" という言葉を使わしめたような気がしてならないのですが、実際のところはどうなのでしょうね。
ご本人に会って直接聞いてみたい今日この頃です(´∀`)

2011051101

JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス

P.S.

「truthyとfalsy」が水野さんのブログが書かれたのが2008年の6月8日なのですが、その半年後(12月)には JavaScript The Good Parts の日本語訳が発行されていることを考えると、時期的にすごく微妙な感じがしますね。
とか、そんなことを考えてしまうのも、truthy と falsy に出会ったからに他ならないような気もします。