概要
Objectでもfunctionでもなんでもboolean値で返す手法です。
常識なのかもしれませんが、Modernizrのソースを読んでいて初めて
知ったので残しておきます。
実装
test.js
var str = 'hoge';
var str_e = '';
var num = 1;
var num_e = 0;
var nl = null;
var unde = void 0;
var obj = {jojo: 'oraora', dio: 'mudamuda'};
var obj_e = {};
var arr = ['ora', 'muda'];
var arr_e = [];
var fnc = function() {};
console.log(!!str); // true
console.log(!!str_e); // false
console.log(!!num); // true
console.log(!!num_e); // false
console.log(!!nl); // false
console.log(!!unde); // false
console.log(!!obj); // true
console.log(!!obj_e); // true
console.log(!!arr); // true
console.log(!!arr_e); // true
console.log(!!fnc); // true
ちなみに
Ruby, PHPでもこの書き方ができるようです。
この書き方の正式名称を知っている方は教えて下さいm(_ _)m