Zoeken…


Syntaxis

  • ongeldige uitdrukking; // Evalueert expressie en negeert retourwaarde
  • + Expressie; // Poging om uitdrukking naar een getal te converteren
  • object.property verwijderen; // Verwijder de eigenschap van het object
  • verwijder object ["property"]; // Verwijder de eigenschap van het object
  • type operand; // Retourneert het type operand
  • ~ Expressie; // Voer NIET-bewerking uit op elk bit van uitdrukking
  • !uitdrukking; // Voer logische ontkenning uit bij expressie
  • -uitdrukking; // Negeer uitdrukking na poging tot conversie naar nummer

De operator Unary plus (+)

De unaire plus ( + ) gaat vooraf aan zijn operand en evalueert zijn operand. Het probeert de operand te converteren naar een getal, als dit nog niet is gebeurd.

Syntaxis:

+expression

Geeft terug:

  • een Number .

Beschrijving

De operator unary plus ( + ) is de snelste (en voorkeurs) methode om iets in een getal om te zetten.

Het kan omzetten:

  • tekenreeksrepresentaties van gehele getallen (decimaal of hexadecimaal) en drijvers.
  • booleans: true , false .
  • null

Waarden die niet kunnen worden geconverteerd, worden geëvalueerd naar NaN .

Voorbeelden:

+42           // 42
+"42"         // 42
+true         // 1
+false        // 0
+null         // 0
+undefined    // NaN
+NaN          // NaN
+"foo"        // NaN
+{}           // NaN
+function(){} // NaN

Merk op dat het proberen om een array te converteren kan leiden tot onverwachte retourwaarden.
Op de achtergrond worden arrays eerst geconverteerd naar hun stringvoorstellingen:

[].toString() === '';
[1].toString() === '1';
[1, 2].toString() === '1,2';

De operator probeert vervolgens die tekenreeksen om te zetten in getallen:

+[]           // 0   ( === +'' )
+[1]          // 1   ( === +'1' )
+[1, 2]       // NaN ( === +'1,2' )

De verwijderoperator

De delete verwijdert een eigenschap van een object.

Syntaxis:

delete object.property

delete object['property']

Geeft terug:

Als het verwijderen is gelukt of de eigenschap niet bestond:

  • true

Als de te verwijderen eigenschap een eigen niet-configureerbare eigenschap is (kan niet worden verwijderd):

  • false in niet-strikte modus.
  • Gooit een fout in de strikte modus

Beschrijving

De delete maakt niet direct geheugen vrij. Het kan indirect geheugen vrijmaken als de bewerking betekent dat alle verwijzingen naar de eigenschap zijn verdwenen.

delete werkt aan de eigenschappen van een object. Als er een eigenschap met dezelfde naam bestaat in de prototypeketen van het object, wordt de eigenschap overgenomen van het prototype.
delete werkt niet op variabelen of functienamen.

Voorbeelden:

// Deleting a property
foo = 1;              // a global variable is a property of `window`: `window.foo`
delete foo;           // true
console.log(foo);     // Uncaught ReferenceError: foo is not defined

// Deleting a variable
var foo = 1;
delete foo;           // false
console.log(foo);     // 1 (Not deleted)

// Deleting a function
function foo(){ };
delete foo;           // false
console.log(foo);     // function foo(){ } (Not deleted)

// Deleting a property
var foo = { bar: "42" };
delete foo.bar;       // true
console.log(foo);     // Object { } (Deleted bar)

// Deleting a property that does not exist
var foo = { };
delete foo.bar;       // true
console.log(foo);     // Object { } (No errors, nothing deleted)

// Deleting a non-configurable property of a predefined object
delete Math.PI;       // false  ()
console.log(Math.PI); // 3.141592653589793 (Not deleted)

Het type operator

De typeof operator retourneert het gegevenstype van de niet-uitgevoerde operand als string.

Syntaxis:

typeof operand

Geeft terug:

Dit zijn de mogelijke retourwaarden van typeof :

Type Winstwaarde
Undefined "undefined"
Null "object"
Boolean "boolean"
Number "number"
String "string"
Symbol (ES6) "symbol"
Function object "function"
document.all "undefined"
Hostobject (aangeboden door de JS-omgeving) Implementatie-afhankelijke
Elk ander object "object"

Het ongebruikelijke gedrag van document.all met de typeof operator is afkomstig van het eerdere gebruik om oudere browsers te detecteren. Zie Waarom is document.all gedefinieerd maar typeof document.all retourneert "undefined" voor meer informatie .

Voorbeelden:

// returns 'number'
typeof 3.14;
typeof Infinity;
typeof NaN;               // "Not-a-Number" is a "number"

// returns 'string'
typeof "";
typeof "bla";
typeof (typeof 1);        // typeof always returns a string

// returns 'boolean'
typeof true;
typeof false;

// returns 'undefined'
typeof undefined;
typeof declaredButUndefinedVariable;
typeof undeclaredVariable;
typeof void 0;
typeof document.all       // see above

// returns 'function'
typeof function(){};
typeof class C {};
typeof Math.sin;

// returns 'object'
typeof { /*<...>*/ };
typeof null;
typeof /regex/;           // This is also considered an object
typeof [1, 2, 4];         // use Array.isArray or Object.prototype.toString.call.
typeof new Date();
typeof new RegExp();
typeof new Boolean(true); // Don't use!
typeof new Number(1);     // Don't use!
typeof new String("abc"); // Don't use!

// returns 'symbol'
typeof Symbol();
typeof Symbol.iterator;

De ongeldige operator

De void operator evalueert de gegeven uitdrukking en retourneert vervolgens undefined .

Syntaxis:

void expression

Geeft terug:

  • undefined

Beschrijving

De void operator wordt vaak gebruikt om de undefined primitieve waarde te verkrijgen, door middel van het schrijven van void 0 of void(0) . Merk op dat void een operator is, geen functie, dus () is niet vereist.

Gewoonlijk kunnen het resultaat van een void uitdrukking en undefined door elkaar worden gebruikt.
In oudere versies van ECMAScript kon aan window.undefined echter elke waarde worden toegewezen en het is nog steeds mogelijk om undefined als naam te gebruiken voor functieparametervariabelen in functies, waardoor andere code wordt verstoord die afhankelijk is van de waarde van undefined .
void zal echter altijd de echte undefined waarde opleveren.

void 0 wordt ook vaak gebruikt in codeminificatie als een kortere manier om undefined schrijven. Bovendien is het waarschijnlijk veiliger omdat een andere code met window.undefined .

Voorbeelden:

Retourneren undefined :

function foo(){
    return void 0;
}
console.log(foo()); // undefined

De waarde van undefined binnen een bepaald bereik wijzigen:

(function(undefined){
    var str = 'foo';
    console.log(str === undefined); // true
})('foo');

De unaire ontkenning operator (-)

De unaire ontkenning ( - ) gaat vooraf aan de operand en ontkent deze, nadat hij heeft geprobeerd deze naar een getal te converteren.

Syntaxis:

-expression

Geeft terug:

  • een Number .

Beschrijving

De unaire ontkenning ( - ) kan dezelfde typen / waarden converteren als de operator unary plus ( + ).

Waarden die niet kunnen worden geconverteerd, worden geëvalueerd naar NaN (er is geen -NaN ).

Voorbeelden:

-42           // -42
-"42"         // -42
-true         // -1
-false        // -0
-null         // -0
-undefined    // NaN
-NaN          // NaN
-"foo"        // NaN
-{}           // NaN
-function(){} // NaN

Merk op dat het proberen om een array te converteren kan leiden tot onverwachte retourwaarden.
Op de achtergrond worden arrays eerst geconverteerd naar hun stringvoorstellingen:

[].toString() === '';
[1].toString() === '1';
[1, 2].toString() === '1,2';

De operator probeert vervolgens die tekenreeksen om te zetten in getallen:

-[]           // -0  ( === -'' )
-[1]          // -1  ( === -'1' )
-[1, 2]       // NaN ( === -'1,2' )

De operator Bitwise NOT (~)

De bitwise NOT ( ~ ) voert een NOT-bewerking uit op elk bit in een waarde.

Syntaxis:

~expression

Geeft terug:

  • een Number .

Beschrijving

De waarheidstabel voor de NIET-operatie is:

een NIET a
0 1
1 0
1337  (base 10) = 0000010100111001 (base 2)
~1337 (base 10) = 1111101011000110 (base 2) = -1338 (base 10)

Een beetje niet op een nummer resulteert in: -(x + 1) .

Voorbeelden:

waarde (basis 10) waarde (basis 2) retour (basis 2) retour (basis 10)
2 00000010 11111100 -3
1 00000001 11111110 -2
0 00000000 11111111 -1
-1 11111111 00000000 0
-2 11111110 00000001 1
-3 11111100 00000010 2

De logische NOT-operator (!)

De operator logisch NOT ( ! ) Voert logische ontkenning uit op een uitdrukking.

Syntaxis:

!expression

Geeft terug:

  • een Boolean .

Beschrijving

De operator logisch NOT ( ! ) Voert logische ontkenning uit op een uitdrukking.

Booleaanse waarden worden gewoon omgekeerd !true === false en !false === true .
Niet-booleaanse waarden worden eerst geconverteerd naar booleaanse waarden en worden vervolgens tenietgedaan.

Dit betekent dat een dubbele logische NOT ( !! ) kan worden gebruikt om elke waarde naar een Boolean te casten:

!!"FooBar" === true
!!1 === true
!!0 === false

Deze zijn allemaal gelijk aan !true :

!'true' === !new Boolean('true');
!'false' === !new Boolean('false');
!'FooBar' === !new Boolean('FooBar');
![] === !new Boolean([]);
!{} === !new Boolean({});

Deze zijn allemaal gelijk aan !false :

!0 === !new Boolean(0);
!'' === !new Boolean('');
!NaN === !new Boolean(NaN);
!null === !new Boolean(null);
!undefined === !new Boolean(undefined);

Voorbeelden:

!true         // false
!-1           // false
!"-1"         // false
!42           // false
!"42"         // false
!"foo"        // false
!"true"       // false
!"false"      // false
!{}           // false
![]           // false
!function(){} // false

!false        // true
!null         // true
!undefined    // true
!NaN          // true
!0            // true
!""           // true

Overzicht

Unaire operatoren zijn operatoren met slechts één operand. Unaire operators zijn efficiënter dan standaard JavaScript-functie-aanroepen. Bovendien kunnen unaire operators niet worden opgeheven en daarom is hun functionaliteit gegarandeerd.

De volgende unaire operatoren zijn beschikbaar:

operator Operatie Voorbeeld
delete De verwijderoperator verwijdert een eigenschap van een object. voorbeeld
void De operator void verwijdert de retourwaarde van een uitdrukking. voorbeeld
typeof De operator typeof bepaalt het type van een bepaald object. voorbeeld
+ De operator unary plus converteert zijn operand naar het type Number. voorbeeld
- De unaire ontkenningsoperator converteert zijn operand naar Number en negeert deze vervolgens. voorbeeld
~ Bitwise NIET-operator. voorbeeld
! Logische NIET-operator. voorbeeld


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow