=== 厳密な等価演算子

expression1 === expression2

2 つの式が等しいかどうかをテストします。厳密な等価 (===) 演算子は、データ型が変換されない点を除いては、等価 (==) 演算子と同じです。両方の式が、そのデータ型も含めて等しい場合、結果は true です。

「等価」の定義は、パラメータのデータ型により異なります。

対応バージョン : ActionScript 1.0、Flash Player 6

オペランド

expression1 : Object - 数値、ストリング、ブール値、変数、オブジェクト、配列、または関数。

expression2 : Object - 数値、ストリング、ブール値、変数、オブジェクト、配列、または関数。

戻り値

Boolean - 比較結果を表すブール値。

次のコードのコメントは、等価演算子および厳密な等価演算子を使用した演算の戻り値を示しています。

// Both return true because no conversion is done 
var string1:String = "5"; 
var string2:String = "5"; 
trace(string1 == string2); // true 
trace(string1 === string2); // true 
// Automatic data typing in this example converts 5 to "5" 
var string1:String = "5"; 
var num:Number = 5; 
trace(string1 == num); // true 
trace(string1 === num); // false 
// Automatic data typing in this example converts true to "1" 
var string1:String = "1"; 
var bool1:Boolean = true; 
trace(string1 == bool1); // true 
trace(string1 === bool1); // false 
// Automatic data typing in this example converts false to "0" 
var string1:String = "0"; 
var bool2:Boolean = false; 
trace(string1 == bool2); // true 
trace(string1 === bool2); // false 

次の例では、厳密な等価で比較する場合に、参照を格納する変数とリテラル値を格納する変数の扱いがどのように違うかを示しています。この結果を見ると、String クラスでは new 演算子の使用を避け、ストリングリテラルを使用する理由が明らかになります。

// Create a string variable using a literal value 
var str:String = "asdf"; 
// Create a variable that is a reference 
var stringRef:String = new String("asdf"); 
// The equality operator does not distinguish among literals, variables, 
// and references 
trace(stringRef == "asdf"); // true 
trace(stringRef == str); // true 
trace("asdf" == str); // true 
// The strict equality operator considers variables that are references 
// distinct from literals and variables 
trace(stringRef === "asdf"); // false 
trace(stringRef === str); // false 

関連項目

! 論理否定 (NOT) 演算子, != 不等価演算子, !== 厳密な不等価演算子, && 論理積 (AND) 演算子, || 論理和 (OR) 演算子, == 等価演算子


 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flash/9.0_jp/main/00001302.html