Асновы мовы JavaScript: Тыпы даных
Гэта пачатак серыі артыкулаў.
- Першая частка: Тыпы даных
- Другая частка: Аб'екты
У мове JavaScript вызначаны простыя і спасылачныя тыпы даных.
Простыя тыпы:
- Лікі (Number, BigInt)
- Радкі (String)
- Лагічны тып (Boolean)
null
undefined
- Сімвал (Symbol)
Спасылачныя тыпы:
- Масіў (Array)
- Функцыя (Function)
- Дата (Date)
- Рэгулярныя выразы (RegExp)
Усе спасылачныя даныя належаць да тыпу даных аб'ект (object
).
Аб'яўленне пераменных
Пераменныя ў JavaScript аб'яўляюцца з дапамогай аператараў var
, const
, let
(пра розніцу паміж гэтымі аператарамі можна пачытаць тут). Імёны пераменных у JavaScript адчувальныя да рэгістра. Неаб'яўленыя пераменныя не існуюць да таго часу, пакуль да іх не выканана прысвойванне. Рэкамендавана заўсёды аб'яўляць пераменныя, незалежна ад таго знаходзяцца яны ўнутры функцыі або ў глабальным кантэксце. Выкарыстанне неаб'яўленых пераменных непрадказальна.
//аб'ява пераменнай var n; let l; //аб'ява групы пераменных var n1, n2, n_end; let l1, l2, l_end; // аб'ява і ініцыялізацыя пераменнай var n = 10; const c = 15; let l = 25;
Канцэпцыі выкарыстання простых тыпаў даных
Разгледзім некаторыя канцэпцыі выкарыстання простых тыпаў даных у мове JavaScript:
- У JavaScript усе тыпы даных з'яўляюцца дынамічнымі. Гэта азначае, што адна і тая ж пераменная можа выкарыстоўвацца для захоўвання розных тыпаў даных і не трэба відавочна паказваць тып пераменных або тып функцый, якія вяртаюцца.
var x; // x мае тып undefined x = 10; // цяпер x - лік x = "Дзесяць"; // цяпер x - радок
- Лікавы тып даных number выкарыстоўваецца для працы з цэлымі і рэчавымі лікамі ў дыяпазоне ад -2^53 да 2^53
var x1 = 34.00; var x2 = 34;
- Цэлыя лікі можна задаваць не толькі ў дзесятковай сістэме злічэння, але і ў двайковай(0b), васьмярковай (0) або шаснаццатковай сістэме злічэння (0x) з выкарыстаннем прэфіксаў, указаных у круглых дужках. (З дапамогай
.toString(radix)
можна задаць сістэму злічэння да аснавання 36, падрабязней тут).
alert(0b1111); //15 alert(0xff); //255 alert(010); //8
- Для запісу радкоў могуць выкарыстоўвацца адзінарныя (‘) або двайныя (“) двукоссі.
var str1 = "Прывітанне, свет!"; var str2 = 'Прывітанне, свет!';
- Выкарыстанне зваротных (касых) двукоссяў дазваляе ўбудоўваць у радок выразы, складаючы іх у ${…} (знак долара і фігурныя дужкі)
var name = "Кастусь"; alert(`Добрай ранiцы, ${name}!`); // Добрай ранiцы, Кастусь!
- Нулявы тып (
null
) змяшчае адзінае адмысловае значэнне —null
. Звычайна яно выкарыстоўваецца для ініцыялізацыі пераменнай, якой пасля будзе прысвоена значэнне. - Пераменныя, абвешчаныя без значэння, маюць значэнне і тып
undefined
. - Каб вызначыць тып даных пераменнай, выкарыстоўваецца аператар
typeof
. Гэта выкарыстоўваецца, калі трэба апрацоўваць значэнні розных тыпаў па-рознаму або проста зрабіць праверку.
typeof "" // "string" typeof "Сусвет" //"string" typeof 121 //"number" typeof 3.14 //"number" typeof (5 + 0.5) //"number" typeof true //"boolean"
- Каб стварыць значэнне тыпу
bigint
, неабходна дадацьn
у канец запісу колькасці.
const big_n = 10257816842624n;
JavaScript аўтаматычна ажыццяўляе пераўтварэнне тыпаў пры неабходнасці (няяўна). Гэта называецца type coercion.
Няяўнае пераўтварэнне простых тыпаў даных
Няяўнае пераўтварэнне простых тыпаў даных:
- Радковае пераўтварэнне. Для яўнага пераўтварэння ўжываецца аператар "+", у якога адзін з аргументаў радок.
alert(true + "_string"); // "true_string" alert("123 + " + 123); // "123 + 123" alert(3 + "5"); // "35"
- Колькаснае пераўтварэнне. Адбываецца ў матэматычных функцыях і выразах, а таксама пры параўнанні даных розных тыпаў.
var a = +"123"; // 123 alert(3 * "5"); // 15 alert(+true); // 1 alert(+false); // 0
- Пераўтварэнне да лагічнага значэння. Пераўтварэнне да
true
/false
адбываецца ў запісе ўмовы ў канструкцыях, якія кіруюць, і пры ўжыванні лагічных аператараў.
Значэнне | Пераўтварэнне |
---|---|
undefined , null | false |
Лікі | true (акрамя 0, NaN — false ) |
Радкі | true (акрамя пустога радка "" — false ) |
Аб’екты | true |
- Пры параўнанні значэнняў розных тыпаў кожнае са значэнняў прыводзіцца да ліку.
alert('2' > 1); // true alert('01' == 1); // true
У пераважнай большасці выпадкаў няяўнае пераўтварэнне тыпаў у JavaScript лепш пазбягаць і пры неабходнасці пераўтварэння тыпу выкарыстоўваць функцыі пераўтварэння.
Спосабы яўнага пераўтварэння
Разгледзім спосабы яўнага пераўтварэння простых тыпаў даных:
- У радок (
String
):
String(123) // '123' String(-12.3) // '-12.3' String(null) // 'null'
- У лік (
Number
,BigInt
):
var a = Number("123"); //123 const big_n = BigInt(1025781); //тое ж, што і 1025781n const n = BigInt("102578143555533"); //102578143555533
- У лагічнае значэнне (
Boolean
):
Boolean(''); // false Boolean(1); // true Boolean(-0); // false Boolean(undefined); // false
Каментары
(Каб даслаць каментар залагуйцеся ў свой уліковы запіс)