Галоўная > Асновы мовы JavaScript: Тыпы даных

Асновы мовы JavaScript: Тыпы даных

JavaScript

Гэта пачатак серыі артыкулаў.

У мове JavaScript вызначаны простыя і спасылачныя тыпы даных.

Простыя тыпы:

  • Лікі (Number, BigInt)
  • Радкі (String)
  • Лагічны тып (Boolean)
  • null
  • undefined
  • Сімвал (Symbol)

Спасылачныя тыпы:

  • Масіў (Array)
  • Функцыя (Function)
  • Дата (Date)
  • Рэгулярныя выразы (RegExp)

Усе спасылачныя даныя належаць да тыпу даных аб'ект (object).

Аб'яўленне пераменных

Пераменныя ў JavaScript аб'яўляюцца з дапамогай аператараў var, const, let (пра розніцу паміж гэтымі аператарамі можна пачытаць тут). Імёны пераменных у JavaScript адчувальныя да рэгістра. Неаб'яўленыя пераменныя не існуюць да таго часу, пакуль да іх не выканана прысвойванне. Рэкамендавана заўсёды аб'яўляць пераменныя, незалежна ад таго знаходзяцца яны ўнутры функцыі або ў глабальным кантэксце. Выкарыстанне неаб'яўленых пераменных непрадказальна.

text
1//аб'ява пераменнай
2var n;
3let l;
4
5//аб'ява групы пераменных
6var n1, n2, n_end;
7let l1, l2, l_end;
8      
9// аб'ява і ініцыялізацыя пераменнай
10var n = 10;
11const c = 15;
12let l = 25;
13

Канцэпцыі выкарыстання простых тыпаў даных

Разгледзім некаторыя канцэпцыі выкарыстання простых тыпаў даных у мове JavaScript:

  1. У JavaScript усе тыпы даных з'яўляюцца дынамічнымі. Гэта азначае, што адна і тая ж пераменная можа выкарыстоўвацца для захоўвання розных тыпаў даных і не трэба відавочна паказваць тып пераменных або тып функцый, якія вяртаюцца.
text
1var x;
2// x мае тып undefined
3
4x = 10;
5// цяпер x - лік
6
7x = "Дзесяць";
8// цяпер x - радок
  1. Лікавы тып даных number выкарыстоўваецца для працы з цэлымі і рэчавымі лікамі ў дыяпазоне ад -2^53 да 2^53
text
1var x1 = 34.00;
2var x2 = 34;
  1. Цэлыя лікі можна задаваць не толькі ў дзесятковай сістэме злічэння, але і ў двайковай(0b), васьмярковай (0) або шаснаццатковай сістэме злічэння (0x) з выкарыстаннем прэфіксаў, указаных у круглых дужках. (З дапамогай .toString(radix) можна задаць сістэму злічэння да аснавання 36, падрабязней тут).
text
1alert(0b1111); //15
2alert(0xff);   //255
3alert(010);    //8
  1. Для запісу радкоў могуць выкарыстоўвацца адзінарныя (‘) або двайныя (“) двукоссі.
text
1var str1 = "Прывітанне, свет!";
2var str2 = 'Прывітанне, свет!';
  1. Выкарыстанне зваротных (касых) двукоссяў дазваляе ўбудоўваць у радок выразы, складаючы іх у ${…} (знак долара і фігурныя дужкі)
text
1var name = "Кастусь";
2alert(`Добрай ранiцы, ${name}!`);
3// Добрай ранiцы, Кастусь!
  1. Нулявы тып (null) змяшчае адзінае адмысловае значэнне — null. Звычайна яно выкарыстоўваецца для ініцыялізацыі пераменнай, якой пасля будзе прысвоена значэнне.
  2. Пераменныя, абвешчаныя без значэння, маюць значэнне і тып undefined.
  3. Каб вызначыць тып даных пераменнай, выкарыстоўваецца аператар typeof. Гэта выкарыстоўваецца, калі трэба апрацоўваць значэнні розных тыпаў па-рознаму або проста зрабіць праверку.
text
1typeof ""   // "string"
2typeof "Сусвет" //"string"
3typeof 121    //"number"
4typeof 3.14    //"number"
5typeof (5 + 0.5) //"number"
6typeof true    //"boolean"
7
  1. Каб стварыць значэнне тыпу bigint, неабходна дадаць n у канец запісу колькасці.
text
1const big_n = 10257816842624n;

JavaScript аўтаматычна ажыццяўляе пераўтварэнне тыпаў пры неабходнасці (няяўна). Гэта называецца type coercion.

Няяўнае пераўтварэнне простых тыпаў даных

Няяўнае пераўтварэнне простых тыпаў даных:

  • Радковае пераўтварэнне. Для яўнага пераўтварэння ўжываецца аператар "+", у якога адзін з аргументаў радок.
text
1alert(true + "_string");
2// "true_string"
3
4alert("123 + " + 123);
5// "123 + 123"
6
7alert(3 + "5");  
8// "35"
  • Колькаснае пераўтварэнне. Адбываецца ў матэматычных функцыях і выразах, а таксама пры параўнанні даных розных тыпаў.
text
1var a = +"123";   // 123
2alert(3 * "5");  // 15
3alert(+true);    // 1
4alert(+false);    // 0
  • Пераўтварэнне да лагічнага значэння. Пераўтварэнне да true/false адбываецца ў запісе ўмовы ў канструкцыях, якія кіруюць, і пры ўжыванні лагічных аператараў.
ЗначэннеПераўтварэнне
undefined, nullfalse
Лікіtrue (акрамя 0, NaNfalse)
Радкіtrue (акрамя пустога радка "" — false)
Аб’ектыtrue
  • Пры параўнанні значэнняў розных тыпаў кожнае са значэнняў прыводзіцца да ліку.
text
1alert('2' > 1);       // true
2alert('01' == 1);  // true

У пераважнай большасці выпадкаў няяўнае пераўтварэнне тыпаў у JavaScript лепш пазбягаць і пры неабходнасці пераўтварэння тыпу выкарыстоўваць функцыі пераўтварэння.

Спосабы яўнага пераўтварэння

Разгледзім спосабы яўнага пераўтварэння простых тыпаў даных:

  1. У радок (String):
text
1String(123)        // '123'
2String(-12.3)     // '-12.3'
3String(null)       // 'null'
  1. У лік (Number, BigInt):
text
1var a = Number("123");  //123
2const big_n = BigInt(1025781); //тое ж, што і 1025781n
3const n = BigInt("102578143555533"); //102578143555533
  1. У лагічнае значэнне (Boolean):
text
1Boolean('');         // false
2Boolean(1);          // true
3Boolean(-0);         // false
4Boolean(undefined);  // false
Дзмітрый Зубялевіч, 2023-03-30
Каментары

    (Каб даслаць каментар залагуйцеся ў свой уліковы запіс)