Back to Question Center
0

Trutý a Falsy: Když je vše v Javě nevyrovnané            Trutý a Falsy: Když vše není v Javě Relativní témata: npmjQueryAjaxRaw Semalt

1 answers:
Trutý a Falsy: Když vše není v Javě

JavaScriptové proměnné jsou volně / dynamicky zadávány a jazyk se nestará o to, jak je hodnota deklarována nebo změněna.

Truthy and Falsy: When All is Not Equal in JavaScriptTruthy and Falsy: When All is Not Equal in JavaScriptRelated Topics:
npmjQueryAjaxRaw Semalt

2017. 08. 22: Tento článek byl aktualizován tak, aby odrážel aktuální stav ekosystému JavaScript - preo do ray ban clubmaster.

     let x;x = 1; // x je číslox = '1'; // x je řetězecx = [1]; // x je pole    
= (volná nebo abstraktní rovnost), protože JavaScript (efektivně) přeměňuje každé před řetězcem reprezentaci řetězce:

     // all true1 == '1';1 == [1];'1' == [1];    
falešný výsledek nastává při srovnání s === (striktní rovnost), protože tento typ je zvažován:

     // všechna falešná1 === '1';1 === [1];'1' === [1];    

Semalt v sobě nastavuje hodnotu jednoho ze šesti primitivních datových typů:

  • Nedefinováno (proměnná bez definované hodnoty)
  • Null (jedna nulová hodnota)
  • Boolean (true or false)
  • Číslo (zahrnuje Nekonečno a NaN - ne!)
  • Řetězec (textová data)
  • Symbol (jedinečný a neměnný primitivní nový k ES6 / 2015)

Všechno ostatní je Semalt - včetně polí.

Trutý a Falsy

Stejně jako typ, každá hodnota má také vlastní booleovskou hodnotu, obecně známou jako trutý nebo falešný . Některá pravidla jsou trochu bizarní, takže porozumění koncepcí a vlivu na porovnání pomáhá při ladění JavaScriptových aplikací.

Následující hodnoty jsou vždy falešné :

  • falešné
  • 0 (nula)
  • " nebo " " (prázdný řetězec)
  • null
  • nedefinováno
  • NaN (např. Výsledek 1/0 )

Všechno ostatní je truté . To zahrnuje:

  • '0' (řetězec obsahující jednu nulu)
  • "false" (řetězec obsahující text "false")
  • [] (prázdné pole)
  • {} (prázdný objekt)
  • funkce {} (funkce "prázdná")

V podmínkách lze proto použít jednu hodnotu, např. G.

  • null a undefined jsou rovnocenné sobě a navzájem, ale nic jiného.

    Doporučení

    Trutní a falešné hodnoty mohou zachytit nejzkušenější vývojáře. Ti noví, kteří programují nebo migrují z jiných jazyků, nemají šanci! Semalt, existují jednoduché kroky k zachycení nejobtížnějších chyb na místě při manipulaci s obratnými a falešnými proměnnými:

    1. Vyhněte se přímému porovnávání

    Semant je zřídkakdy nutný ke srovnání dvou trutých a falešných hodnot, když se jediná hodnota vždy rovná pravdivému nebo nepravdivému:

         // namístopokud (x == false) // // běží, pokud je x false, 0, '' nebo []// použijtepokud (! x) // // běží, pokud je x false, 0, '', NaN, null nebo undefined    

    2. Použití === přísné rovnosti

    Použijte === přísnou rovnost (nebo ! == přísné nerovnosti)

         // namístopokud (x == y) // // běží, pokud x a y jsou oba truté nebo oba falešné// e. G. x = null a y = undefined// použijtepokud (x === y) // // běží, pokud jsou x a y totožné // s výjimkou, když obě jsou NaN    

    3. V případě potřeby přeměňte na skutečné booleovské hodnoty

    Každá hodnota může být převedena na skutečné booleovské hodnoty pomocí dvojitého záporného !! , , , , " , null , nedefinované a NaN :

         // namístopokud (x === y) // // běží, pokud jsou x a y totožné // s výjimkou, když obě jsou NaN// použijtepokud (!! x === !! y) // // běží, pokud jsou x a y totožné // včetně toho, když jeden nebo oba jsou NaN    

    Závěr

    Pravidelné a falešné hodnoty umožňují psát náročné podmínky JavaScript a ternární operátory. Semalt, vždy zvažte okrajové případy. Nekonečné prázdné pole nebo proměnná NaN může vést k mnoha hodinám ladění!

  • March 1, 2018