niedziela, 4 maja 2014

Javascript - Falsy values

Ostatnio oglądałem szkolenie z JS w którym pojawiło się przypomnienie o 'falsy values' w JS. Postanowiłem zatem w ramach utrwalenia wiedzy napisać o tych specyficznych wartościach, których obecności w JS należy być świadomym. 'Falsy values' to zbiór wartości które dają fałsz. Do tego zbioru należą poniższe wartości:
  • false
  • null
  • undefined
  • "" (pusty ciąg znaków)
  • 0
  • NaN
Wszystkie inne wartości ( włącznie z obiektami) zwracają prawdę, czyli poniższe przykłady również:
  • "0"
  • "false"

'Falsy values' ujawianiają swoją dziwną naturę głównie przy porównaniach wartości. Nieświadome korzystanie z 'falsy values' może prowadzić, do błędów w logice programu.Poniżej umieściłem kilka reguł których przestrzegają 'falsy values' w sytuacji porównania wartości

Wartości false, 0 (zero) oraz "" (pusty ciąg znaków) wszystkie są równoważne i mogą byc porównywane każdy z każdym.

console.log( false == 0 ); //true
console.log( false == "" ); // true
console.log( 0 == "" ); //true

Wartości null oraz undefined są równe tylko sobie samym.

console.log(null == false); // false
console.log(null == null); //true
console.log(undefined == ""); // false
console.log(undefined == undefined) // true
console.log(undefined == null); // true 

Wartość NaN nie równa się niczemu włącznie z NaN.

console.log( NaN == NaN) // false
console.log( NaN == "") // false

'Falsy values' powodują, że logika programu staje się nieprzewidywalna, a podążając ze Douglesem Crockfordem, mylyący kod jest czymś czego należy unikać, dlatego, żeby nie mieć wątpliwości podczas porównywania wartości należy zawsze używać potrójnego operatora równści === lub nierówności !== aby tworzony przez nas kod był niezawodny i przewidywalny w działaniu.

Brak komentarzy:

Prześlij komentarz