konwersja koercja ach te internety @nate_dumlao

Czym różni się konwersja od koercji w JS?

Dziś będzie krótka piłka. Bardzo często spotykam się z wymiennym stosowaniem słów konwersja oraz koercja. Czy aby na pewno są one równoważne? A może jednak się różnią? Po kolei…

Konwersja

Najogólniej opisując konwersja typów to przekształcenie pewnej wartości w wartość należącą do innego typu danych.

Konwersja może być jawna (explicit) lub niejawna (implicit).

Konwersja jawna (explicit conversion)

Inaczej: rzutowanie (casting).

Ma miejsce w przypadku, kiedy programista w kodzie nakazuje kompilatorowi potraktowanie zmiennej jednego typu danych, jak gdyby należała ona do innego typu.

const value1 = '3';
const value2 = 8;
const sum = Number(value1) + value2;

console.log(sum); //11

W powyższym przykładzie kompilator potraktował string '3' jako liczbę (zgodnie z funkcją Number()). Ostateczna suma wartości 3 + 8 to spodziewana liczba 11.

Konwersja niejawna (implicit conversion)

Inaczej: (chwila pauzy… bębenki…) koercja (coercion)! Tadaaam!

Ma miejsce w przypadku, kiedy kompilator automatycznie określa typ danych, bez ingerencji programisty.

const value1 = '3';
const value2 = 8;
const sum = value1 + value2;

console.log(sum); //'38'

W powyższym przykładzie kompilator trafił na operator +. W związku z tym, iż jednym z argumentów operacji jest string, JavaScript automatycznie dokonuje koercji argumentu typu number do typu string.


Mam nadzieję, że teraz rozumiesz różnicę między słowami konwersja oraz koercja. A jeśli zdarzy Ci się zapomnieć, do którego typu konwersji należy koercja – pamiętaj, że po angielsku coercion oznacza dosłownie przymus. To rozwieje wszelkie wątpliwości.

A na koniec robię konkurs. Otóż w języku polskim posiadamy czasownik konwertować utworzony od rzeczownika konwersja. A jak mógłby wyglądać czasownik utworzony od słowa koercja..? Brakuje mi tego wyrażenia. Koertować? To brzmi źle. Czekam na Twoją propozycję

Źródła: KLIK, KLIK, KLIK, KLIK, KLIK.

Artykuły, które mogą Ci się spodobać...

Wpisz hasło, którego szukasz i naciśnij ENTER, aby je wyszukać. Naciśnij ESC, aby anulować.

Dawaj na górę