ActionScript: Controleren of Equality vergelijken Waarden


  Share  
|


U wilt controleren of twee waarden gelijk zijn.

Gebruik de gelijkheid (of ongelijkheid) of strikte gelijkheid (of strikte ongelijkheid) operator te vergelijken twee waarden. Om te controleren of een waarde is een geldig getal, gebruik isNaN ().

Gelijkheid uitdrukkingen altijd weer een Boolean waarde die aangeeft of de twee waarden gelijk zijn. De gelijkheid (en ongelijkheid) exploitanten komen in zowel regelmatige en strikte smaken. De regelmatige gelijkheid en ongelijkheid exploitanten controleren of de twee uitdrukkingen die worden vergeleken kan worden opgelost om dezelfde waarde na ze te converteren naar hetzelfde datatype. Bijvoorbeeld, er rekening mee dat de string "6" en de nummer 6 als gelijkwaardig worden beschouwd, omdat de string "6" wordt geconverteerd naar de nummer 6 voor de vergelijking:

trace (5 == 6); / / Displays: false trace (6 == 6); / / Displays: true trace (6 == "6"); / / Displays: true trace (5 == "6") / / Displays: false

De logische ongelijkheid operator (! =) Geeft false als twee waarden gelijk zijn en waar als ze niet gelijk zijn. Indien nodig, worden de operanden geconverteerd naar dezelfde datatype voor de vergelijking:

trace (5! = 6); / / Displays: true trace (6! = 6); / / Displays: false trace (6! = "6"); / / Displays: false trace (5! = "6") / / Displays: true

Aan de andere kant, de strikte gelijkheid en ongelijkheid exploitanten eerst controleren of de waarden die worden vergeleken zijn van hetzelfde datatype voor het uitvoeren van de vergelijking. Verschillen in datatype ertoe leiden dat de strikte gelijkheid exploitant om terug te keren vals en de strikte ongelijkheid exploitant return true:

trace (6 === 6); / / Displays: true trace (6 === "6"); / / Displays: false trace (6! == 6); / / Displays: false trace (6! == "6"); / / Displays: true

Er is een groot verschil tussen de opdracht operator (=) en de gelijke behandeling exploitant (==). Als u de opdracht operator te gebruiken in plaats van de gelijkheid exploitant, verander je de waarde van de variabele in plaats van het testen van de huidige waarde.

Gebruik van de verkeerde operator leidt tot onverwachte resultaten. In het volgende voorbeeld, myVar gelijk aan 5 op het eerste, dus je zou verwachten de volgende if-statement altijd te evalueren in valse, het voorkomen van het spoor () uit werd uitgevoerd:

var myVar = 5; / / De volgende code verkeerd is. Moet worden if (myVar == 6) in plaats if (myVar = 6) (trace ( "Konijnen zijn konijnen.");) Trace ( "myVar is" + myVar); / / Displays: myVar is 6

Echter, het voorbeeld ten onrechte gebruik maakt van de opdracht operator (=) in plaats van het gelijkheids-operator (==). Dat is de uitdrukking myVar = 6 sets myVar tot en met 6 in plaats van te testen of myVar is 6. Bij gebruik in een if-clausule, is de uitdrukking myVar = 6 behandeld als de nummer 6. Omdat elke nul-nummer gebruikt in een test uitdrukking bekeerlingen tot de Booleaanse ware, het spoor () actie wordt opgeroepen. Vervang de test expressie met myVar == 6 plaats.

U kunt datatype van een item met behulp van de typeof exploitant, als volgt:

var myVar = 5; if (typeof myVar == "number") (trace ( "Yippee. Het is een nummer.");)

Maar sommige numerieke waarden zijn ongeldig. Het volgende voorbeeld resulteert in myVar wordt gelijk aan de NAN (een constante die ongeldige nummers, een afkorting van 'not-a-Nummer "), omdat de berekening niet kan worden uitgevoerd op een zinvolle manier:

var myVar = 15 - "koffie";

Ondanks zijn naam, NaN is een erkende waarde van het aantal datatype:

trace (typeof myVar) / / Displays: "nummer"

Daarom, als er iets is niet alleen een aantal test, maar een geldig nummer, kunt u proberen dit:

var myVar = 15 - "koffie" if (typeof myVar == "number") (/ / Leuk geprobeerd, maar dit zal niet werken. if (myVar! = NaN) (trace ( "Yippee. Het is een nummer." );))

Je kunt niet zomaar vergelijken een waarde aan de constante NaN om te controleren of het een geldig nummer. In plaats daarvan moet u de speciale isNaN () functie gebruiken voor het uitvoeren van de test.

Om te bepalen of een aantal ongeldig is, gebruik maken van de speciale isNaN () functie, als volgt:

var myVar = 15 - "koffie" if (isNaN (myVar)) (trace ( "Sorry, dat is geen geldig getal.");)

Om te testen het tegenovergestelde van een aandoening (dat wil zeggen, of aan de voorwaarde niet waar is) gebruik van de logische operator NOT (!). Bijvoorbeeld, om te controleren of een variabele bevat een geldig nummer, gebruik! Isnan (), als volgt:

var myVar = 15 - "koffie" if (! isNaN (myVar)) (/ / Het aantal niet ongeldig is, dus het moet een geldig getal is. trace ( "Dat is een geldig getal.") / / Dit sprongen naar een ander frame, ervan uitgaande dat je een frame "SuccessScreen". label gotoAndStop ( "SuccessScreen");)

Natuurlijk kunt u uitvoeren vergelijkingen met behulp van de bekende vergelijking exploitanten. Zo kunt u gebruik maken van de> en <exploitanten om te controleren of een waarde kleiner is dan of groter is dan een andere waarde:

trace (5 <6); / / Displays: true trace (5> 5); / / Displays: false

Ook kunt u gebruik maken van de> = en <= exploitanten om te controleren of een waarde kleiner is dan of gelijk is aan of groter dan of gelijk is aan een andere waarde:

trace (5 <= 6); / / Displays: true trace (5> = 5); / / Displays: true

Je moet ook weten dat ActionScript vergelijkt verschillende datatypes anders. ActionScript gegevens kunnen worden onderverdeeld in primitieve datatypes (string, het nummer en Boolean) of samengestelde datatypes (object, movieclip, en array). Wanneer u primitieve datatypes vergelijken, ActionScript vergelijkt ze 'by value'. In dit voorbeeld zijn myVar en myOtherVar gelijke beschouwd omdat ze zowel de waarde 6 bevatten.

var myVar = 6; var myOtherVar = 6; trace (myVar == myOtherVar) / / Displays: true

Wanneer u echter samengestelde datatypes vergelijken, ActionScript vergelijkt ze "door te verwijzen." Het vergelijken van objecten door middel van verwijzing betekent dat de twee items als gelijkwaardig worden beschouwd alleen als beide wijzen op precies hetzelfde object, niet alleen om voorwerpen met bijpassende inhoud. Bijvoorbeeld, twee arrays met daarin precies dezelfde waarden niet gelijk zijn beschouwd:

/ / Maak twee arrays met dezelfde elementen. ArrayOne = new Array ( "a", "b", "c"); arrayTwo = new Array ( "a", "b", "c"); trace (arrayOne = = arrayTwo) / / Displays: false

Twee samengestelde objecten zijn gelijk alleen als ze beide verwijzen naar de identieke doel, array, of filmclip. Bijvoorbeeld

/ / Maak een matrix arrayOne = new Array ( "a", "b", "c"); / / Maak een andere variabele die verwijst naar dezelfde array. ArrayOne = arrayTwo; trace (arrayOne == arrayTwo); / / Displays : true
een artikel afkomstig van Gabriel Savimbi


Share  

© 2005-2010 E-articles.info All Rights Reserved - Terms and conditions