ホームページ >ウェブフロントエンド >jsチュートリアル >!=、==、!==、=== 使用法の概要
今回は、!=、==、!==、===の使い方のまとめと、!=、==、!==、===を使用する際の注意点についてお届けします。以下に実際のケースを見てみましょう。
var num = 1; var str = '1'; var test = 1; test == num //true 相同类型 相同值 test === num //true 相同类型 相同值 test !== num //false test与num类型相同,其值也相同, 非运算肯定是false num == str //true 把str转换为数字,检查其是否相等。 num != str //false == 的 非运算 num === str //false 类型不同,直接返回false num !== str //true num 与 str类型不同 意味着其两者不等 非运算自然是true啦
== と != 型が異なる場合は、まず型の変換を試み、次に値を比較し、最後に値の比較結果を返します。
そして
=== と !== は、それらが同じ型である場合にのみそれらの値を比較します。
まず、 == 平等は平等、 === 同一性は等しい。
==、両側の値の型が異なる場合、型変換を行ってから比較する必要があります。
===、型変換は行われません。異なる型は等価であってはなりません。
以下については個別に説明します:
まず === について話しましょう。これは比較的簡単です。 2 つの値が === 等しいかどうかを判断するために次のルールが使用されます:
1. 型が異なる場合、[等しくない]
2. 両方が数値であり、同じ値である場合。 , then [等しい]; (! 例外) は、少なくとも 1 つが NaN の場合、[等しくない] ことです。 (値が NaN であるかどうかを判断するには、isNaN() を使用するだけです)
3. 両方が strings であり、各位置の文字が同じである場合、[等しい]、それ以外の場合は [等しくない]。 。
4. 両方の値が true または両方が false の場合、[等しい]。
5. 両方の値が同じオブジェクトまたは関数を参照している場合は [等しい]、そうでない場合は [等しくない]。
6. 両方の値が null であるか、両方が未定義の場合は、[等しい]。
次のルールに従って == について話しましょう:
1. 2 つの値の型が同じ場合、=== 比較を実行します。
2. 2 つの値の型が異なる場合、それらは等しい可能性があります。型変換を実行し、次のルールに従って比較します:
a. 一方が null で、他方が未定義の場合、[等しい]。
b. 一方が文字列でもう一方が数値の場合、文字列を数値に変換して比較します。
c. いずれかの値が true の場合は 1 に変換して比較し、いずれかの値が false の場合は 0 に変換して比較します。
d. 一方がオブジェクトで、もう一方が数値または文字列の場合、オブジェクトを基本型の値に変換して比較します。オブジェクトは、toString メソッドまたは valueOf メソッドを使用して基本型に変換されます。 JS コアの組み込みクラスは toString の前に valueOf を試行しますが、toString 変換を使用する Date は例外です。非 js コア オブジェクト (もっと面倒です。よくわかりません) やその他の組み合わせは、[等しくない] です。
例:"1" == true
型が等しくありません。最初に true が値 1 に変換され、次に "1" == 1 になり、次に "1" が次のように変換されます。 1、1 = = 1 と比較すると等しい。
=
代入演算子 == は === と厳密に等しい 例:
var a = 3;
a==b は true a を返します== =bはfalseを返します
aとbの型が違うため
===は厳密な比較と判定に使います
var data = ({"val":"7","flag":"true"}); <FONT face=Verdana></FONT>以下のflagの値をどう判定するか? trueと二重引用符==は文字列trueであると推定されるため二重引用符がない場合===はブール値trueこれは非常に重要で、これまで理解したことがありませんでした 書き方1
if(data.flag=true){…}else{..}はどう書いても正しいですが、elseの値が全く取れないのは、この書き方は
if(true){…}2
if(data.flag==true){…}else{..}を書くのと同じだからです。はそのような書き方ではありません 3
if(data.flag='true'){…}else{..}はどう書いても正しいです。 理由は、この書き方は と同等だからです。
if(true){…}4を書いています
if(data.flag=='true'){…}else{..}
这个才是正确的写法
“=”:这个表示赋值,不是表示运算符
“==”:表示等于(值)
“===”:表示全等于(类型和值)
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
以上が!=、==、!==、=== 使用法の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。