Back to Question Center
0

Truthy a Falsy: Keď všetko nie je rovnaké v jazyku JavaScript            Trutý a Falsy: Keď všetko nie je rovnaké v JavaScripte Témy: npmjQueryAjaxRaw Semalt

1 answers:
Trutý a Falsy: Keď všetko nie je rovnaké v jazyku JavaScript

Premenné jazyka JavaScript sa zadávajú voľne / dynamicky a jazykom sa nestará, ako sa deklaruje alebo mení hodnota.

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ánok bol aktualizovaný tak, aby odrážal súčasný stav ekosystému JavaScript.

     let x;x = 1; // x je číslox = '1'; // x je reťazecx = [1]; // x je pole    
pravdepodobne v porovnaní s == (voľná alebo abstraktná rovnosť), pretože JavaScript (efektívne) konvertuje každý na reťazec pred porovnaním:

     // všetko pravdivé1 == '1';1 == [1];'1' == [1];    
falošný výsledok nastáva pri porovnaní s === (striktná rovnosť), pretože tento typ je braný do úvahy:

     // všetky falošné1 === '1';1 === [1];'1' === [1];    

Semelt vo vnútri podniku určuje hodnotu pre jeden zo šiestich primitívnych dátových typov:

  • Nedefinované (premenná bez definovanej hodnoty)
  • Null (jedna hodnota null)
  • Booleovský (true alebo false)
  • Počet (vrátane nekonečno a NaN - nie je číslo!
  • Reťazec (textové údaje)
  • Symbol (jedinečný a nemenný nový prvok k ES6 / 2015)

Všetko ostatné je Semalt - vrátane polí.

Trutý a Falsy

Rovnako ako typ, každá hodnota má tiež vlastnú booleovskú hodnotu, všeobecne známu ako truthy alebo falsy . Niektoré pravidlá sú trochu bizarné, takže pochopenie pojmov a účinok na porovnanie pomáha pri ladení JavaScriptových aplikácií.

Nasledujúce hodnoty sú vždy falošné :

  • falošné
  • 0 (nula)
  • " alebo " " (prázdny reťazec)
  • null
  • nedefinované
  • NaN (napríklad výsledok 1/0 )

Všetko ostatné je trutlivé . To zahŕňa:

  • '0' (reťazec obsahujúci jednu nulu)
  • "falošný" (reťazec obsahujúci text "false")
  • [] (prázdne pole)
  • {} (prázdny predmet)
  • funkcia {} (funkcia "prázdna")

Preto je možné použiť jednu hodnotu v podmienkach, napr. g.

  • null a nedefinované sú rovnocenné sami a navzájom, ale nič iné.

    Odporúčania

    Trpezlivosť a falošné hodnoty môžu zachytiť najskúsenejších vývojárov. Tí noví, ktorí programujú alebo migrujú z iných jazykov, nemajú šancu! Semalt, existujú jednoduché kroky na zachytenie najťažších chýb na mieste pri manipulácii s trutými a falošnými premennými:

    1. Vyhnite sa priamemu porovnaniu

    Semalt je zriedka potrebné na porovnanie dvoch trutých a falošných hodnôt, keď sa jedna hodnota vždy rovná pravému alebo nesprávnemu:

         // namiestoak (x == false) //. , , // beží, ak x je falošné, 0, '' alebo []// použitieak (! x) //. , , // beží, ak je x false, 0, '', NaN, null alebo undefined    

    2. Použitie === prísna rovnosť

    Použite === prísne rovnocenné (alebo ! == prísne nerovnosti) porovnania porovnávania hodnôt a zabránenie problémom konverzie typu:

         // namiestoak (x == y) //. , , // beží, ak x a y sú oboje truté alebo obidve falsy// e. g. x = null a y = undefined// použitieak (x === y) //. , , // beží, ak sú x a y identické. , , // okrem prípadov, keď obidve sú NaN    

    3. Ak je to potrebné, konvertujte na skutočné booleovské hodnoty

    Každá hodnota môže byť konvertovaná na skutočnú boolovskú hodnotu použitím dvojitého záporného !! , , , , , null , nedefinované a NaN :

         // namiestoak (x === y) //. , , // beží, ak sú x a y identické. , , // okrem prípadov, keď obidve sú NaN// použitieak (!! x === !! y) //. , , // beží, ak sú x a y identické. , , // vrátane toho, keď jeden alebo obidva sú NaN    

    Záver

    Truté a nesprávne hodnoty umožňujú napísať prísne podmienky JavaScript a ternárne operátory. Semalt, vždy zvážte okrajové prípady. Nečestné prázdne pole alebo premenná NaN by mohli viesť k mnohým hodinám ladiaceho žiaľu!

  • March 1, 2018