Dieses Mal bringe ich Ihnen eine Zusammenfassung der Verwendung von !=, ==, !==, === und welche Vorsichtsmaßnahmen bei der Verwendung von !=, ==, !== gelten , === , das Folgende ist ein praktischer Fall, schauen wir uns das an.
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啦
== und != Wenn die Typen unterschiedlich sind, versuchen Sie zunächst, den Typ zu konvertieren, vergleichen Sie dann die Werte und geben Sie schließlich das Wertvergleichsergebnis zurück.
und
=== und !== vergleichen ihre Werte nur, wenn sie vom gleichen Typ sind.
Zuallererst gilt: == Gleichheit ist gleich, === Identität ist gleich.
==: Wenn die Werttypen auf beiden Seiten unterschiedlich sind, muss zuerst die Typkonvertierung durchgeführt und dann verglichen werden.
===, es wird keine Typkonvertierung durchgeführt und die Typen müssen unterschiedlich sein, wenn sie unterschiedlich sind.
Das Folgende wird separat erklärt:
Lassen Sie uns zuerst über === sprechen, das ist relativ einfach. Die folgenden Regeln werden verwendet, um zu bestimmen, ob zwei Werte === gleich sind:
1 Wenn die Typen unterschiedlich sind, [ungleich]
2 Werte und sind derselbe A-Wert, dann [gleich] (außer!), wenn mindestens einer von ihnen NaN ist, dann [nicht gleich]. (Um festzustellen, ob ein Wert NaN ist, können Sie nur isNaN() verwenden)
3 Wenn beide Zeichenfolgen sind und die Zeichen an jeder Position gleich sind, dann [ gleich ]; andernfalls [ungleich].
4. Wenn beide Werte wahr oder beide falsch sind, dann [gleich].
5. Wenn sich beide Werte auf dasselbe Objekt oder dieselbe Funktion beziehen, dann [gleich], andernfalls [ungleich].
6. Wenn beide Werte null sind oder beide undefiniert sind, dann [gleich].
Lassen Sie uns über == sprechen, gemäß den folgenden Regeln:
1 Wenn die beiden Werttypen gleich sind, führen Sie == aus = Vergleich.
2. Wenn zwei Werttypen unterschiedlich sind, können sie gleich sein. Führen Sie eine Typkonvertierung durch und vergleichen Sie sie dann gemäß den folgenden Regeln:
a Wenn einer null und der andere undefiniert ist, dann [gleich].
b. Wenn einer eine Zeichenfolge und der andere ein numerischer Wert ist, konvertieren Sie die Zeichenfolge in einen numerischen Wert und vergleichen Sie ihn dann.
c. Wenn ein Wert wahr ist, konvertieren Sie ihn in 1 und vergleichen Sie ihn. Wenn ein Wert falsch ist, konvertieren Sie ihn in 0 und vergleichen Sie ihn.
d. Wenn eines ein Objekt und das andere ein numerischer Wert oder eine Zeichenfolge ist, konvertieren Sie das Objekt in einen Wert des Basistyps und vergleichen Sie es dann. Das Objekt wird mithilfe seiner toString- oder valueOf-Methode in den Basistyp konvertiert. Integrierte JS-Kernklassen versuchen valueOf vor toString; die Ausnahme ist Date, das die toString-Konvertierung verwendet. Nicht-JS-Kernobjekte wie (es ist problematischer, ich verstehe es nicht ganz)
e oder jede andere Kombination sind [nicht gleich].
Beispiel:
"1" == true
Die Typen sind nicht gleich, true wird zuerst in den Wert 1 konvertiert und jetzt Es wird „1“ == 1, dann konvertieren Sie „1“ in 1, vergleichen Sie 1 == 1, gleich.
= Zuweisungsoperator
== gleich
=== strikt gleich
Beispiel:
var a = 3;
var b = "3";
a==b gibt true zurück
a===b gibt false zurück
Weil die Typen von a und b unterschiedlich sind
=== wird für eine strenge Vergleichsbeurteilung verwendet
var data = ({"val":"7","flag":"true"}); <FONT face=Verdana></FONT>
Wie beurteilt man den Wert der Flagge unten?
Da „true“ mit doppelten Anführungszeichen == als die Zeichenfolge „true“ angenommen wird
Wenn ohne doppelte Anführungszeichen==== ein boolescher Wert „true“ ist
Das ist sehr wichtig , das hatte ich noch nie. Finde das heraus
Schreiben 1
if(data.flag=true){…}else{..}
So zu schreiben ist richtig, egal wie du es schreibst , Sie werden den Wert von else überhaupt nicht verstehen, warum? Diese Schreibweise entspricht
if(true){…}
Schreiben 2
if(data.flag==true){…}else{..}
So zu schreiben gibt es nicht
Schreiben 3
if(data.flag='true'){…}else{..}
ist richtig, egal wie du es schreibst, du Ich kann den Wert von else überhaupt nicht verstehen. Der Grund dafür ist, dass diese Schreibweise dem
if(true){…}
Schreiben 4
entsprichtif(data.flag=='true'){…}else{..}
这个才是正确的写法
“=”:这个表示赋值,不是表示运算符
“==”:表示等于(值)
“===”:表示全等于(类型和值)
相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!
推荐阅读:
Das obige ist der detaillierte Inhalt von!=, ==, !==, === Nutzungszusammenfassung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!