W JavaScript mamy kilka typów danych, takich jak number, boolean, string, array, object, undefined, null, function, Date i symbol.

Konwersja typu w JavaScript ma miejsce w dwóch przypadkach, pierwszy bez bezpośredniej ingerencji dewelopera, gdy operand lub parametr funkcji nie otrzymuje oczekiwanego typu oraz drugim, gdy programista dokonuje konwersji typu celowo.

Przeanalizujmy większość możliwych konwersji typów w JavaScript:

Konwersja na ciąg znaków

Istnieje kilka ogólnych sposobów konwertowania dowolnej wartości na ciąg znaków w JavaScript: metoda toString(), funkcja String() i konkatenacja ciągu znaków (jeśli jeden z operandów jest ciągiem, zamiast dodawania wykonywana jest konkatenacja ciągu znaków).

var x;
console.log(x.toString());
console.log(String(x));
console.log("" + x);

number na string:

console.log(String(1)); // "1"
console.log(String(0)); // "0"
console.log(String(-1)); // "-1"

boolean na string:

console.log(String(true)); // "true"
console.log(String(false)); // "false"

array na string:

console.log(String([])); // ""
console.log(String([1])); // "1"
console.log(String([1,2,3])); // "1,2,3"

object na string:

var obj = {name: "John"};
console.log(obj.toString()); // "[object Object]"
console.log(JSON.stringify(obj)); // '{"name":"John"}'

inne wartości:

console.log(String(null)); // "null"
console.log(String(undefined)); // "undefined"
console.log(String(NaN)); // "NaN"

Wszystkie wartości

wartośćciąg znaków
null„null”
undefined„undefined”
NaN„NaN”
1 „1”
0„0”
-1„-1”
true„true”
false„false”
[]„”
[1,2,3]„1,2,3”

Konwersja na typ numeryczny

Istnieje kilka ogólnych sposobów konwersji dowolnej wartości na liczbę: funkcja Number(), funkcja parseInt(), funkcja parseFloat() i operator dodawania.

string na number

var b = "5";
console.log(Number(b)); // 5
console.log(parseInt(b)); // 5
console.log(+b); // 5

Białe spacje na początku i na końcu są usuwane. Jeśli pozostały ciąg jest pusty, wynikiem jest 0.

console.log(Number("   10   ")); // 10
console.log(Number("3.14")); // 3.14
console.log(Number("  ")); // 0
console.log(Number(" ")); // 0
console.log(Number("")); // 0

boolean na integer:

var bool = true;
console.log(Number(bool)); // 1
console.log(parseInt(bool)); // NaN
console.log(+bool); // 1

boolean na integer:

console.log(Number(true)); // 1
console.log(Number(false)); // 0

inne wartości:

console.log(Number(undefined)); // NaN
console.log(Number(null)); // 0

Jeżeli wartość nie jest prawidłową liczbą, wynikiem takiej konwersji jest NaN.

console.log(Number("10a")); // NaN
console.log(Number("xyz")); // NaN
console.log(Number(NaN)); // NaN

Wszystkie wartości

wartośćwartość numeryczna
null0
undefinedNaN
NaNNaN
„1”1
„0”0
„3.14”3.14
„” 0
” ” 0
„a”NaN
true1
false0

Konwersja na typ logiczny/boolowski

Istnieje kilka ogólnych sposobów konwertowania dowolnej wartości na wartość boolowską: funkcja Boolean(), podwójne negowanie (!!).

number na boolean:

console.log(Boolean(1)); // true
console.log(Boolean(0)); // false
console.log(Boolean(-1)); // true

string na boolean:

console.log(Boolean("")); // false
console.log(Boolean("a")); // true
console.log(Boolean(" ")); // true
console.log(Boolean("0")); // true

inne wartości:

console.log(Boolean(undefined)); // false
console.log(Boolean(null)); // false
console.log(Boolean(NaN)); // false
console.log(Boolean([])); // true
console.log(Boolean({})); // true

Wszystkie wartości:

wartośćwartość boolowska
nullfalse
undefinedfalse
NaNfalse
1 true
0 false
-1true
„” false
” ” true
„a”true
„0”true
[]true
{}true


0 Comments

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *