javascript で string 型と boolean 型を相互に変換

string 型を boolean 型に変換する

parseInt() のように parseBool() があるかと思ったけど、
なさそうなので自分で作る。

下記サンプルコード。

var t = 'true';
var f = 'false';

// string 型から boolean 型に変換
// ex) var res = (t == 'true') 
console.log((t == 'true')); // true
console.log((f == 'true')); // false

// これは期待通りに動かない
console.log(Boolean(t)); // true
console.log(Boolean(f)); // true

これだと文字列が true 以外だと全て false になる。
もっと厳密に変換したい場合は下記のようなコードになる。

function parseBool(value) {
	switch (value) {
	case true:
	case 'true':
	case 1:
	case '1':
		return true;
	case false:
	case 'false':
	case 0:
	case '0':
		return false;
	default:
		return null;
	}
}

boolean 型を string 型に変換する

Boolean オブジェクトは toString() を持っている。

var t = true;
var f = false;

console.log(t.toString());
console.log(f.toString());
カテゴリー:js