揮発性のメモ2

http://d.hatena.ne.jp/iww/

== での比較

なんかもうぐちゃぐちゃしてるので、ちゃんと === 使うべきと思う

真偽値

ふつう

print( true == true );       // true
print( true == false );      // false
print( false == false );     // true

数値

0のとき偽、1のとき真で、それ以外はなんでも偽

print( true == 0 );          // false
print( true == 1 );          // true
print( true == 2 );          // false  1じゃないので

print( false == 0 );         // true
print( false == 1 );         // false
print( false == 2 );         // false

文字列

"0"か""のとき偽、"1"のとき真で、それ以外はなんでも偽

print( true == "" );         // false
print( true == "0" );        // false
print( true == "1" );        // true

print( false == "" );        // true
print( false == "0" );       // true
print( false == "1" );       // false

print( true == "1.0" );      // true   小数点はセーフ
print( true == "0x01" );     // true   16進もセーフ
print( true == "01" );       // true   8進もギリギリセーフ

print( true == "10" );       // false  10だから 1じゃない
print( true == "1a" );       // false  1a は数値じゃない
print( true == "0a" );       // false  0a も数値じゃない
print( false == "0a" );      // false
print( true == "2" );        // false  
print( false == "2" );       // false
print( true == "a" );        // false  
print( false == "a" );       // false

print( true == "true" );     // false
print( false == "false" );   // false

配列

空のときは偽、長さが1のときは先頭の要素に従い、2個以上はなんでも偽

print( true == [] );         // false
print( false == [] );        // true

print( true == [1] );        // true
print( true == [0] );        // false
print( false == [0] );       // true
print( false == [1] );       // false

print( true == [0,0] );      // false
print( true == [1,1] );      // false
print( false == [0,0] );     // false
print( false == [1,1] );     // false

常に偽

オブジェクト、null、undefined はなんか常に偽

print( true == {} );        // false
print( true == null );      // false
print( true == undefined ); // false

print( false == {} );        // false 
print( false == null );      // false
print( false == undefined ); // false