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

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

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:

  1. У JavaScript усе тыпы даных з'яўляюцца дынамічнымі. Гэта азначае, што адна і тая ж пераменная можа выкарыстоўвацца для захоўвання розных тыпаў даных і не трэба відавочна паказваць тып пераменных або тып функцый, якія вяртаюцца.
var x;
// x мае тып undefined

x = 10;
// цяпер x - лік

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

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

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

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

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

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

    ;