Szukaj…


Składnia

  • nieważne wyrażenie; // Ocenia wyrażenie i odrzuca zwracaną wartość
  • + wyrażenie; // Próba konwersji wyrażenia na liczbę
  • usuń object.property; // Usuń właściwość obiektu
  • usuń obiekt [„właściwość”]; // Usuń właściwość obiektu
  • operand typu; // Zwraca typ operandu
  • ~ wyrażenie; // Wykonaj operację NIE dla każdego bitu wyrażenia
  • !wyrażenie; // Wykonaj logiczną negację wyrażenia
  • -wyrażenie; // Neguj wyrażenie po próbie konwersji na liczbę

Jednoargumentowy operator plus (+)

Jednoargumentowy plus ( + ) poprzedza swój operand i ocenia na operand. Próbuje przekonwertować operand na liczbę, jeśli jeszcze nie jest.

Składnia:

+expression

Zwroty:

  • Number .

Opis

Jednoargumentowy operator plus ( + ) jest najszybszą (i preferowaną) metodą konwersji czegoś na liczbę.

Może konwertować:

  • ciąg znaków reprezentujący liczby całkowite (dziesiętne lub szesnastkowe) i zmiennoprzecinkowe.
  • booleany: true , false .
  • null

Wartości, których nie można przekonwertować, zostaną przeliczone na NaN .

Przykłady:

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

Pamiętaj, że próba konwersji tablicy może spowodować nieoczekiwane zwracane wartości.
W tle tablice są najpierw konwertowane na ich reprezentacje łańcuchowe:

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

Operator następnie próbuje przekonwertować te ciągi na liczby:

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

Operator usuwania

delete operator usuwa właściwość z obiektu.

Składnia:

delete object.property

delete object['property']

Zwroty:

Jeśli usunięcie się powiedzie lub właściwość nie istnieje:

  • true

Jeśli właściwość do usunięcia jest własną właściwością nieskonfigurowalną (nie można jej usunąć):

  • false w trybie innym niż ścisły.
  • Zgłasza błąd w trybie ścisłym

Opis

Operator delete nie zwalnia bezpośrednio pamięci. Może pośrednio zwolnić pamięć, jeśli operacja oznacza, że zniknęły wszystkie odwołania do właściwości.

delete działa na właściwościach obiektu. Jeśli właściwość o tej samej nazwie istnieje w łańcuchu prototypów obiektu, właściwość zostanie odziedziczona z prototypu.
delete nie działa na nazwach zmiennych i funkcji.

Przykłady:

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

Operator typeof

Operator typeof zwraca typ danych nieocenionego operandu jako ciąg.

Składnia:

typeof operand

Zwroty:

Oto możliwe wartości zwracane z typeof :

Rodzaj Zwracana wartość
Undefined "undefined"
Null "object"
Boolean "boolean"
Number "number"
String "string"
Symbol (ES6) "symbol"
Obiekt Function "function"
document.all "undefined"
Obiekt hosta (dostarczony przez środowisko JS) Zależny od implementacji
Każdy inny przedmiot "object"

Nietypowe zachowanie document.all z operatorem typeof wynika z jego wcześniejszego użycia do wykrywania starszych przeglądarek. Aby uzyskać więcej informacji, zobacz Dlaczego zdefiniowano document.all, ale typeof document.all zwraca „undefined”?

Przykłady:

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

Operator pustki

Operator void ocenia podane wyrażenie, a następnie zwraca undefined .

Składnia:

void expression

Zwroty:

  • undefined

Opis

Operator void jest często używany do uzyskania undefined wartości pierwotnej, poprzez zapisanie void 0 lub void(0) . Zauważ, że void jest operatorem, a nie funkcją, więc () nie jest wymagane.

Zwykle wynik wyrażenia void i undefined można stosować zamiennie.
Jednak w starszych wersjach ECMAScript do window.undefined można przypisać dowolną wartość, a nadal można użyć undefined nazwy dla zmiennych parametrów funkcji wewnątrz funkcji, zakłócając w ten sposób inny kod, który opiera się na wartości undefined .
void zawsze da jednak prawdziwą undefined wartość.

void 0 jest również powszechnie używany w minimalizacji kodu jako krótszy sposób pisania undefined . Ponadto jest to prawdopodobnie bezpieczniejsze, ponieważ jakiś inny kod mógł sfałszować funkcję window.undefined .

Przykłady:

Zwrot undefined :

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

Zmiana wartości undefined w pewnym zakresie:

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

Jednoargumentowy operator negacji (-)

Jednoczesna negacja ( - ) poprzedza operand i neguje go, po próbie przekształcenia go w liczbę.

Składnia:

-expression

Zwroty:

  • Number .

Opis

Jednoargumentowa negacja ( - ) może konwertować te same typy / wartości, co jednoargumentowy operator plus ( + ).

Wartości, których nie można przekonwertować, zostaną obliczone na NaN (nie ma -NaN ).

Przykłady:

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

Pamiętaj, że próba konwersji tablicy może spowodować nieoczekiwane zwracane wartości.
W tle tablice są najpierw konwertowane na ich reprezentacje łańcuchowe:

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

Operator następnie próbuje przekonwertować te ciągi na liczby:

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

Bitowy operator NOT (~)

Bitowe NOT ( ~ ) wykonuje operację NOT na każdym bicie w wartości.

Składnia:

~expression

Zwroty:

  • Number .

Opis

Tabela prawdy dla operacji NOT to:

za Ani
0 1
1 0
1337  (base 10) = 0000010100111001 (base 2)
~1337 (base 10) = 1111101011000110 (base 2) = -1338 (base 10)

Bitowe nie na liczbie powoduje: -(x + 1) .

Przykłady:

wartość (podstawa 10) wartość (podstawa 2) powrót (baza 2) powrót (baza 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

Logiczny operator NOT (!)

Operator logiczny NOT ( ! ) Wykonuje logiczną negację wyrażenia.

Składnia:

!expression

Zwroty:

  • Boolean .

Opis

Operator logiczny NOT ( ! ) Wykonuje logiczną negację wyrażenia.

Wartości boolowskie są po prostu odwracane !true === false i !false === true .
Wartości inne niż logiczne są najpierw konwertowane na wartości logiczne, a następnie są negowane.

Oznacza to, że podwójnego logicznego NOT ( !! ) można użyć do wyrzucenia dowolnej wartości na wartość logiczną:

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

Wszystkie są równe !true :

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

Wszystkie są równe !false :

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

Przykłady:

!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

Przegląd

Jednostkowe operatory to operatory z tylko jednym operandem. Jednostopniowi operatorzy są bardziej wydajni niż standardowe wywołania funkcji JavaScript. Ponadto nie można zastąpić jednoargumentowych operatorów, dlatego ich funkcjonalność jest gwarantowana.

Dostępne są następujące jednoargumentowe operatory:

Operator Operacja Przykład
delete Operator usuwania usuwa właściwość z obiektu. przykład
void Operator void odrzuca wartość zwracaną wyrażenia. przykład
typeof Operator typeof określa typ danego obiektu. przykład
+ Jednoargumentowy operator plus przekształca operand na typ liczby. przykład
- Jednoargumentowy operator negacji przekształca operand na liczbę, a następnie go neguje. przykład
~ Bitowy operator NOT. przykład
! Logiczny operator NOT. przykład


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow