Suche…


Syntax

  • leerer Ausdruck; // Wertet den Ausdruck aus und verwirft den Rückgabewert
  • + Ausdruck; // Versuch, den Ausdruck in eine Zahl umzuwandeln
  • Lösche object.property; // Lösche die Eigenschaft des Objekts
  • Objekt löschen ["Eigenschaft"]; // Lösche die Eigenschaft des Objekts
  • Typ des Operanden; // Gibt den Typ des Operanden zurück
  • ~ Ausdruck; // NOT-Operation für jedes Bit des Ausdrucks ausführen
  • !Ausdruck; // Logische Negation für Ausdruck ausführen
  • -Ausdruck; // Negiere den Ausdruck nach dem Versuch der Umwandlung in eine Zahl

Der unäre Plusoperator (+)

Das unäre Plus ( + ) steht vor seinem Operanden und wird zu seinem Operanden ausgewertet . Es wird versucht, den Operanden in eine Zahl umzuwandeln, falls diese noch nicht vorhanden ist.

Syntax:

+expression

Kehrt zurück:

  • eine Number

Beschreibung

Der unäre Plus ( + ) - Operator ist die schnellste (und bevorzugte) Methode, etwas in eine Zahl umzuwandeln.

Es kann konvertieren:

  • Zeichenfolgendarstellungen von Ganzzahlen (dezimal oder hexadezimal) und Fließkommazahlen.
  • booleans: true , false .
  • null

Werte, die nicht konvertiert werden können, werden in NaN ausgewertet.

Beispiele:

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

Beachten Sie, dass der Versuch, ein Array zu konvertieren, zu unerwarteten Rückgabewerten führen kann.
Im Hintergrund werden Arrays zuerst in ihre Stringdarstellungen konvertiert:

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

Der Bediener versucht dann, diese Zeichenfolgen in Zahlen umzuwandeln:

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

Der Löschoperator

Der delete Operator löscht eine Eigenschaft aus einem Objekt.

Syntax:

delete object.property

delete object['property']

Kehrt zurück:

Wenn das Löschen erfolgreich ist oder die Eigenschaft nicht vorhanden ist:

  • true

Wenn die zu löschende Eigenschaft eine eigene nicht konfigurierbare Eigenschaft ist (kann nicht gelöscht werden):

  • false im nicht strengen Modus.
  • Löst einen Fehler im strikten Modus aus

Beschreibung

Der delete gibt Speicher nicht direkt frei. Dadurch kann indirekt Speicherplatz freigegeben werden, wenn alle Verweise auf die Eigenschaft gelöscht werden.

delete funktioniert auf die Eigenschaften eines Objekts. Wenn eine Eigenschaft mit demselben Namen in der Prototypkette des Objekts vorhanden ist, wird die Eigenschaft vom Prototyp übernommen.
delete funktioniert nicht bei Variablen oder Funktionsnamen.

Beispiele:

// 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)

Der Typ des Operators

Der Operator typeof gibt den Datentyp des nicht ausgewerteten Operanden als Zeichenfolge zurück.

Syntax:

typeof operand

Kehrt zurück:

Dies sind die möglichen Rückgabewerte von typeof :

Art Rückgabewert
Undefined "undefined"
Null "object"
Boolean "boolean"
Number "number"
String "string"
Symbol (ES6) "symbol"
Function "function"
document.all "undefined"
Hostobjekt (wird von der JS-Umgebung bereitgestellt) Implementierungsabhängig
Irgendein anderes Objekt "object"

Das ungewöhnliche Verhalten von document.all mit dem typeof Operator beruht auf seiner früheren Verwendung zur Erkennung älterer Browser. Weitere Informationen finden Sie unter Warum ist document.all definiert, aber typeof document.all gibt "undefined" zurück.

Beispiele:

// 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;

Der leere Operator

Der void Operator wertet den angegebenen Ausdruck aus und gibt dann undefined .

Syntax:

void expression

Kehrt zurück:

  • undefined

Beschreibung

Der void Operator wird häufig verwendet, um den undefined Grundwert durch Schreiben von void 0 oder void(0) . Beachten Sie, dass void ein Operator und keine Funktion ist. Daher ist () nicht erforderlich.

Normalerweise kann das Ergebnis eines void Ausdrucks und undefined austauschbar verwendet werden.
In älteren Versionen von ECMAScript konnte window.undefined jedoch ein beliebiger Wert zugewiesen werden. Es ist weiterhin möglich, undefined als Namen für Funktionsparametervariablen innerhalb von Funktionen zu verwenden, was anderen Code stört, der auf den Wert von undefined beruht.
void liefert jedoch immer den wahren undefined Wert.

void 0 wird auch häufig in der Code-Minifizierung als kürzere Schreibweise undefined . Darüber hinaus ist es wahrscheinlich sicherer, da window.undefined einen anderen Code manipuliert werden window.undefined .

Beispiele:

Rückgabe undefined :

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

Ändern des Werts von undefined innerhalb eines bestimmten Bereichs:

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

Der unäre Negationsoperator (-)

Die unäre Negation ( - ) steht vor ihrem Operanden und negiert diesen, nachdem versucht wurde, ihn in eine Zahl umzuwandeln.

Syntax:

-expression

Kehrt zurück:

  • eine Number

Beschreibung

Die unäre Negation ( - ) kann dieselben Typen / Werte konvertieren wie der unäre Plus ( + ) - Operator.

Werte, die nicht konvertiert werden können, werden in NaN ausgewertet (es gibt kein -NaN ).

Beispiele:

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

Beachten Sie, dass der Versuch, ein Array zu konvertieren, zu unerwarteten Rückgabewerten führen kann.
Im Hintergrund werden Arrays zuerst in ihre Stringdarstellungen konvertiert:

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

Der Bediener versucht dann, diese Zeichenfolgen in Zahlen umzuwandeln:

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

Der bitweise NOT-Operator (~)

Das bitweise NOT ( ~ ) führt für jedes Bit in einem Wert eine NOT-Operation aus.

Syntax:

~expression

Kehrt zurück:

  • eine Number

Beschreibung

Die Wahrheitstabelle für die NICHT-Operation lautet:

ein Kein
0 1
1 0
1337  (base 10) = 0000010100111001 (base 2)
~1337 (base 10) = 1111101011000110 (base 2) = -1338 (base 10)

Ein bitweiser Wert ohne Zahl ergibt: -(x + 1) .

Beispiele:

Wert (Basis 10) Wert (Basis 2) Rückkehr (Basis 2) Rückkehr (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

Der logische NOT-Operator (!)

Der logische NOT-Operator ( ! ) Führt eine logische Negation eines Ausdrucks aus.

Syntax:

!expression

Kehrt zurück:

  • ein Boolean

Beschreibung

Der logische NOT-Operator ( ! ) Führt eine logische Negation eines Ausdrucks aus.

Boolesche Werte werden einfach invertiert !true === false und !false === true .
Nicht-boolesche Werte werden zuerst in boolesche Werte konvertiert und dann negiert.

Dies bedeutet, dass ein doppeltes logisches NOT ( !! ) verwendet werden kann, um einen beliebigen Wert in einen booleschen Wert umzuwandeln:

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

Dies sind alle gleich !true :

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

Dies sind alle gleich !false :

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

Beispiele:

!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

Überblick

Unäre Operatoren sind Operatoren mit nur einem Operanden. Unäre Operatoren sind effizienter als standardmäßige JavaScript-Funktionsaufrufe. Außerdem können unäre Operatoren nicht außer Kraft gesetzt werden, sodass ihre Funktionalität garantiert ist.

Die folgenden unären Operatoren stehen zur Verfügung:

Operator Operation Beispiel
delete Der delete-Operator löscht eine Eigenschaft aus einem Objekt. Beispiel
void Der void-Operator verwirft den Rückgabewert eines Ausdrucks. Beispiel
typeof Der Operator typeof bestimmt den Typ eines bestimmten Objekts. Beispiel
+ Der unary-Plus-Operator konvertiert seinen Operanden in den Number-Typ. Beispiel
- Der unäre Negationsoperator konvertiert seinen Operanden in Number und negiert ihn dann. Beispiel
~ Bitweiser NICHT Operator. Beispiel
! Logischer NICHT-Operator. Beispiel


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow