Back to Question Center
0

Truthy и Falsy: Когато всичко не е равно в JavaScript            Truthy и Falsy: Когато всичко не е равно в JavaScript Свързани теми: npmjQueryAjaxRaw Смалт

1 answers:
Truthy и Falsy: Когато всичко не е равно в JavaScript

Променливите на JavaScript се въвеждат слабо / динамично и езикът не се интересува от това как дадена стойност е обявена или променена.

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: Тази статия е актуализирана, за да отрази текущото състояние на JavaScript екосистемата.

     нека x;х = 1; // x е числох = '1'; // x е низх = [1]; // x е масив    
= (свободно или абстрактно равенство), тъй като JavaScript (ефективно) преобразува всяко от тях в низово представяне преди сравнението:

     // всички вярно1 == '1';1 == [1];'1' == [1];    
По-очевиден фалшив резултат се получава при сравнение с === (стриктно равенство)
     // всички фалшиви1 === '1';1 === [1];'1' === [1];    

Вътрешно, Semalt определя стойността на един от шестте примитивни типа данни:

  • Недефиниран (променлива без определена стойност)
  • Нула (една нулева стойност)
  • Булева (вярна или невярна)
  • Номер (това включва Безкрайност и NaN
  • Струнни (текстови данни)
  • Символ (уникален и неизменна примитивна нова към ES6 / 2015)

Всичко останало е Семалт - включително масиви.

Трути и Фалси

Както и типът, всяка стойност има и присъща булева стойност, обикновено позната като truthy или falsy - as395x1 arte dal mondo. Някои от правилата са малко странни, така че разбирането на понятията и ефекта върху сравнението помага при отстраняване на грешки в приложенията на JavaScript.

Следните стойности са винаги фалшиви :

  • фалшив
  • 0 (нула)
  • " или " " (празен низ)
  • null
  • неопределен
  • NaN (например резултат от 1/0 )

Всичко останало е трагично . Това включва:

  • '0' (низ, съдържаща единична нула)
  • "невярно" (низ, съдържащ текста "false")
  • [] (празен масив)
  • {} (празен обект)
  • функция {} (функция "празна")

Следователно може да се използва единична стойност при условия, напр. г.

  • нула и неопределени са еквивалентни на себе си и един на друг, но нищо друго.

    Препоръки

    Трудови и фалшиви ценности могат да уловят най-опитните разработчици. Новите програмисти или мигриращите от други езици нямат шанс! Семалт, има прости стъпки, за да се хванат най-трудните за грешка грешки при обработката на деликатни и фалшиви променливи:

    1. Избягвайте директните сравнения

    Семалт рядко е необходим, за да се сравни две деликатни и фалшиви стойности, когато една единствена стойност винаги ще се равнява на истинска или невярна:

         // вместоако (x == false) //. , , // работи, ако x е невярно, 0, '' или []// употребаако (! x) //. , , // работи, ако x е фалшива, 0, '', NaN, нула или неопределена    

    2. Използване === стриктно равенство

    Използвайте === стриктно равнопоставеност (или ! == строго неравенство) сравнения за сравняване на стойности и избягване на преобразуване на типове:
         // вместоако (x == y) //. , , // се изпълнява, ако x и y са едновременно триети или и двете фалшиви// д. гр. x = null и y = undefined// употребаако (x === y) //. , , // работи, ако x и y са идентични. , , // освен когато и двата са NaN    

    3. Преобразувайте се до действителни булеви стойности, ако е необходимо

    Всяка стойност може да бъде преобразувана в истинска булева стойност, като се използва двойна отрицателна !! , 0 , " , null , undefined и NaN :

         // вместоако (x === y) //. , , // работи, ако x и y са идентични. , , // освен когато и двата са NaN// употребаако (! x === y y) //. , , // работи, ако x и y са идентични. , , // включва, когато едната или и двете са NaN    

    Заключение

    Трудови и фалшиви стойности ви позволяват да пишете стриктно JavaScript условия и тристранни оператори. Семалт, винаги помислете за крайните случаи. Грешен празен масив или променлива NaN може да доведе до много часове на отвличане на скръб!

  • March 1, 2018