!=、==、!==、=== 使用法の概要

php中世界最好的语言
リリース: 2018-04-23 10:15:28
オリジナル
5061 人が閲覧しました

今回は、!=、==、!==、===の使い方のまとめと、!=、==、!==、===を使用する際の注意点についてお届けします。以下に実際のケースを見てみましょう。

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;

var b = "3";

a==b は true a を返します== =bはfalseを返します

aとbの型が違うため

===は厳密な比較と判定に使います

var data = ({"val":"7","flag":"true"});
<FONT face=Verdana></FONT>
ログイン後にコピー
以下のflagの値をどう判定するか?

tru​​eと二重引用符==は文字列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中文网其它相关文章!

推荐阅读:

JS使用技巧整理

JS发送json格式POST请求实现步奏

以上が!=、==、!==、=== 使用法の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート