Frontend

17-блог: Мағлыўмат типлери дегенимиз не? 1-бөлим / Maǵlıwmat tipleri degenimiz ne?

JavaScriptтеги Number, String, Boolean, Null, Undefined, Object ҳәм Array менен мағлыўмат типлерин аңсат мысалларда үйренемиз.

Қызық емес нәрсе негизи ең керекли билим болыўы да мүмкин. Мағлыўмат типлери деген атаманы оқысаңыз "билиўим шәртпе?" деп еңсеңиз қатады. Бирақ бираз сабыр етип, усы блогты оқып көриң. Мағлыўмат типлери/түрлери ҳаққында аңсат етип түсиндириўге ҳәрекет еттим.

Программа жазыўды үйренип баслағаныңызда ең биринши "мағлыўмат түрлери" деген теманы үйрениўиңиз керек болады.

Мағлыўмат түри/типи дегенимиз не?

Мағлыўмат типлерин инглизшесине data type деп атайды. Мен де блогтың ақырына шекем усы терминнен пайдаланаман. Кореяда жумыс барысында да 데이터 타입 (data type) деп инглизше терминди пайдаланамыз.

Data type дегенимизди "ишине ҳәр түрли буйым салып қоя алатуғын қуты (яки тартпа, қорап)" деп көз алдыңызға келтириң.

Ҳәр түрли затлар салынған қутылар

Буйым қәлеген нәрсе болыўы мүмкин. Ол үлкен, кишкене, енине узын, суўық, қатты, жалпақ, домалақ, қыйсық, дүзиў, ыссы яки муздай болыўы мүмкин. Усы буйымның қәсийетин билиў жүдә әҳмийетли. Себеби ыссы затты пластик қутының ишине сала алмаймыз. Ызғар нәрсени қағаз қутының ишине жайластыра алмаймыз.

Алдыңғы блогларда айтып өткен мына гидимандай шкаф негизинде бир түрдеги ағаш тартпалардан ибарат емес еди. Оның түрин өзгертиў мүмкин.

Компьютер ядын билдиретуғын тартпалы шкаф

Усы шкафты компьютердиң яды деп алған едик. Сонда тартпаның түрин қалай өзгертемиз?

Ишине қоятуғын заттың қәсийетине қарап! Үлкен нәрсе қойып, тартпаның сыртынан "үлкен тартпа" деп жазылған қағазды қыстырып кетемиз. (Әлбетте, атын да қосып жазамыз)

Түри - үлкен тартпа

Аты - дәў

Үлкен зат салынған үлкен тартпа

Егер затымыз кишкене болса, үлкен тартпаны бәнт қылыў шәрт емесқо. Затымызды қойып, тартпаның сыртынан мынандай мағлыўмат жазамыз.

Түри - кишкене тартпа

Аты - киттәй

Кишкене зат салынған кишкене тартпа

"Кишкене тартпа" деп аталатуғын тартпаларға тек киттәй затлар сыятуғын болады.

Тап соның ушын, компьютерге тартпаның ишинде не турғанын алдыннан айтып қойыў зәрүр.

Енди, IT тилинде data type не екенин және бир рет түсиндирип өтсек.

Мағлыўмат түри яки data type бул айныўшыға (variable) мәнис бергенде оның түрин белгилеўде ҳәм оған қарата қандай әмеллерди асырыўға болатуғынын анықлағанда қолланылады.

Мағлыўмат түри неге керек?

A) Яд бөлистириў ушын керек. Бағана жаратқан "үлкен тартпаға" үлкен яд керек. "Кишкене тартпаға" ядты аз-маз ажыратсақ болады.

B) Ядтағы мәниске қарата қандай әмеллерди асыра алыўды билиў ушын керек. Мәселен, көп бағдарлама тиллеринде "сан" деп жазылған тартпадағы мәнисти "ҳәрип" деп белгиленген тартпадағы мәниске тиккелей қоса алмайсыз. Айырыў, бөлиў, көбейтиў де мүмкин емес. Қәтени (Type Error) келтирип шығарыўы мүмкин.

Бирақ, JavaScriptте сан менен ҳәрипти қоссаң қәте шығармай, екеўин текстке айландырып қосып қойыўы мүмкин. Не ушын мени күйдиретуғын программалаў тили екениниң себеплеринен бири. Ол жүдә ерке тил. Фантомас!

C) Код (коуд) жазғанда қәтелердиң алдын алыў ушын керек.

Еслетпе: тартпаның өлшеми бул data typeти түсиниў ушын келтирилген әпиўайы мысал. JavaScriptте ядты бөлистириў жумысын JavaScript двигатели өзи басқарады.

Қандай мағлыўмат түрлери бар?

Бир қанша data type бар. Бирақ солардың ишинде усы блогта көретуғын тийкарғы мәнислер ҳәм структуралар төмендегилерден ибарат.

  1. Number - санлар: 1, 0, 4.29, -1, 0.005 ҳәм тағы басқа.
  2. String - текст формасындағы мағлыўмат.
  3. Boolean - true яки false (шын ямаса жалған) деген мәнислер.
  4. Null - бос мәнисти арнаўлы түрде көрсетиў.
  5. Undefined - еле мәнис берилмегенин көрсетиў.
  6. Object - бир неше мағлыўматты бир жерге жыйнаўшы структура.
  7. Array - мәнислердиң тәртипли дизими. JavaScriptте Array техникалық тәрептен Objectтиң арнаўлы түри.

JavaScriptте буннан басқа BigInt ҳәм Symbol деген primitive data typeлар да бар. Оларды кейин ала үйренсеңиз болады.

Қолдан келгенше, қарақалпақ тилине аўдармалаўға ҳәрекет еттим. Бирақ, инглизше терминлерди ядлаўды мәсләҳат беремен. Себеби, кодты тап усы инглизше сөзлерден пайдаланып жазамыз.

Ал, енди JavaScript тилинде усы мағлыўмат түрлери қалай пайдаланылатуғыны ҳаққында түсиндирип өтемен. Усы блогтың екинши санында Python тилинен мысаллар келтирип түсиндирип өтемен.

Ең биринши, JavaScript бул "крутой" тил. Бул дегени, JavaScriptте код жазғанда мағлыўматтың түрин алдыннан белгилеп отырмасақ та болады. JavaScript динамикалық типленген тил: data type айныўшының атына емес, оның ишиндеги мәниске байланыслы анықланады.

1. Number

JavaScript тилинде Number деген мағлыўмат типине санлар (пүтин сан ҳәм бөлшек сан) киреди.

let age = 25;      // Integer
let price = 19.99; // Floating-point

Жоқарыда age бул қарақалпақшасына жасы деген мәнисти береди. Ол variable. Адамның жасы пүтин сан.

Оны 25 деп алдық.

price бул баҳа/нырық. Ол бөлшек сан. Баҳаны 19.99 деп алдық. Бирақ екеўи де сан. Онда неге Number деп жәрияламадық (declare)?

Себеби, JavaScriptте let деген сөзден пайдаланып айныўшыны жәриялаўға болады. JavaScript оның ишиндеги мәнистиң Number екенин өзи анықлайды.

2. String

Тырнақша яки қос тырнақшаның ишинде келетуғын ҳәриплерди String деп атайды.

let name = "Mehriban";
let country = "Karakalpakstan";

Адамның аты Mehriban, ал ўатаны Қарақалпақстан деп жәриялап алдым. Жоқарыдағыдай етип, айныўшыларға мәнис берип жазғанда "declare" (жәриялаў) деген сөзден пайдаланамыз.

Усы ретте let деген айныўшыны жәриялайтуғын гилт сөзден пайдаландық.

3. Boolean

Булев деп атайды русшасына. Қарақалпақшасына да булев деп яки логикалық мәнис деп алсақ болады.

Ол тек true (шынлық) яки false (өтирик) деген мәнислерден турады. Ол берилген айныўшының рас яки өтирик екенин көрсетеди.

Мәселен, өзим ҳаққында бир-еки логикалық айныўшы жаратсам:

let isStudent = false;
let hasGraduated = true;

isStudent - "студентпе?" деп сорап турман. Бул өтирик. Мен студент емесмен. Сонлықтан false деп алдым.

hasGraduated - "оқыўды питкергенбе?" деп сорап турман. Бул шынлық. Мен Кореядағы оқыўымды 4 жыл алдын питкердим. Соның ушын true деп алдым.

4. Null

Базыда айныўшы жәриялағанымызда ишине қандай мәнис қоярыңызды еле-бери билмеўимиз мүмкин. Сол ўақытта арнаўлы бос мәнис қойып кетиў ушын қолланылады.

let emptyValue = null;

Ҳәзирше, emptyValue деген айныўшының услап турған мәниси арнаўлы түрде бос деп белгиленди.

5. Undefined

Базыда, айныўшыны жәриялап болып, оған улыўма ҳеш қандай (ҳәттеки, null деген) мәнис қоспаўымыз мүмкин. Ол ўақытта жәриялаған айныўшымыз undefined, яғный "белгисиз" деген қәсийетке ийе болады.

let unassignedVariable;
console.log(unassignedVariable);

unassignedVariable деген айныўшыны console.log() арқалы шығарып көретуғын болсаңыз, undefined деген мәнис шығады.

6. Object

Мына блогта мен объект не екени ҳаққында түсиндирип өткен едим. Илтимас, усы блогты бир көзден өткерип шығың.

Программаластырыў тиллеринде реал өмирдеги зат, буйым, жанзатты "объект" деп алып қарайды. Инглизшесине object деп аталады. Ҳәм усы терминнен пайдаланған мақул.

Object бул мағлыўматлардың жыйнағы.

Мәселен, сиз ҳәм мен адамлармыз. Адамды да object сыпатында жаратыў мүмкин.

Ҳәмме адамлардың аты, фамилиясы, жасы, туўылған жери, жақсы көретуғын аўқаты болады (ҳәм соған қусаған).

Усы мағлыўматларды бир жерге жыйнап, person деген object жәриялаў мүмкин.

let person = {
  firstName: "Gulayim",
  lastName: "Batir qizi",
  age: 19
};
JavaScriptтеги person объектиниң иллюстрациясы

7. Array

Мәнислердиң (сан болсын, ҳәрип болсын) белгили бир тәртиптеги дизимин "Array" деп атаймыз. Оны қатар деп алсақ та болады, яки массив деп айтыўға да болады. Бирақ, мен инглизшесине Array деп айтқанды мақул көремен. Array мынандай [] қаўсырманың ишинде келеди. Инглизшесине square bracket деп атайды.

let colors = ["blue", "yellow", "green"];
let prices = [300, 543, 8, 99.99];

colors (реңлер) деген айныўшыны жоқарыдағы Array менен жәрияладық. Оның ишине көк, сары, жасыл деген мәнислерди қойдық.

Неге мағлыўмат түрин үйрендик өзи? Ҳәммесин let деген сөзден пайдаланып жаздық-қо???

Аўа, аўа, билемен. Енди JavaScript өзи сондай. Ол мағлыўмат түрин кодты иске қосқанда өзи анықлап алады. Жақсы емес пе? Ҳәр дайым емес.

Мағлыўмат түрин жазбай, тек let деген гилт сөзден пайдаланып айныўшыларды жәриялай аламыз.

Бирақ, үлкен проектлерде developerге data typeти алдыннан анықлап, қәтелерди код иске қосылмастан алдын көриў пайдалы болды. Соның ушын Microsoft компаниясы JavaScriptке типлерди қосып жазыў мүмкиншилигин беретуғын TypeScript деген тилди жаратты. Ҳәзир TypeScript та ең көп қолланылатуғын программалаў тиллеринен бири.

Python тилинде бундай гилт сөзден де пайдаланбай жәриялай аламыз 🤪

Соның ушын, адамлар Python тилин үйренгенди мақул көреди.