Javascript өзгөчөлүктөрү
JavaScript өзгөчөлүктөрү
Келгиле, изилденген материалды кыскача карап чыгып, эң «тымызын» пункттарды белгилейли.
Код структурасы
Көрсөтмөлөр чекиттүү үтүр менен бөлүнөт:
alert('Hello'); alert('World');
Адатта, жаңы сап да бөлүүчү катары чечмеленет, ошондуктан бул да иштейт:
alert('Салам')
alert('Дүйнө')
Бул "автоматтык чекит коюу" деп аталат. Бирок, ал дайыма эле иштей бербейт, мисалы:
alert("Бул билдирүүдөн кийин катаны күтүңүз")
[1, 2].forEach(эскертүү)
Көпчүлүк код стилиндеги колдонмолор ар бир билдирүүдөн кийин чекиттүү үтүр коюуну сунуштайт.
{...} код блокторунан жана алар менен синтаксистик конструкциялардан кийин чекиттүү үтүр талап кылынбайт, мисалы, циклдер:
f() {
// функцияны жарыялоодон кийин үтүрлүү чекит коюунун кажети жок
}
үчүн(;;) {
// циклден кийин чекиттүү үтүр дагы милдеттүү эмес
}
...Бирок, “кошумча” чекит коюп койсок да, ката болбойт. Ал жөн гана көңүл бурулбайт.
Толук маалымат: Код түзүмү.
Катуу режим
Заманбап JavaScript'тен максималдуу пайда алуу үчүн бардык скрипттерди "колдонуу катуу" директивасын кошуу менен баштоо жакшы идея.
'колдонуу катуу';
...
Бул директива скрипттин биринчи сабына же функциянын башына жайгаштырылышы керек.
"Катуу колдонуу" болбосо, код да иштейт, бирок кээ бир функциялар JavaScript тилинин эски версиялары менен "шайкештик режиминде" иштейт. Биз заманбап жүрүм-турумга артыкчылык беребиз.
Кээ бир тил конструкциялары (мисалы, биз үйрөнө элек класстар) демейки боюнча катуу режимди иштетет.
Толук маалымат: Катуу режим — "катуу колдонуу".Өзгөрмөлөр
Сиз төмөнкү менен жарыялай аласыз:
болсун
const (туруктуу, б.а. өзгөртүүгө болбойт)
var (эскертилген, кененирээк маалымат кийинчерээк)
Өзгөрмө аты төмөнкүлөрдү камтышы мүмкүн:
Тамгалар жана сандар, бирок сан биринчи белги боло албайт.
$ жана _ символдору тамгалар менен бирге колдонулат.
Иероглифтер жана латын эмес тамгалар да кабыл алынат, бирок көп колдонулбайт.
Өзгөрмөлөр динамикалык түрдө терилген. Алар каалаган баалуулуктарды сактай алышат:
x = 5 болсун;
x = "Вася";
Жалпысынан 8 маалымат түрү бар:
бүтүн жана реалдуу сандар үчүн сан,
бигинт ыктыярдуу узундуктагы бүтүн сандар менен иштөө үчүн,
саптар үчүн сап,
логикалык чыныгы же жалган маанилер үчүн логикалык: чыныгы/жалган,
null - бул бир нөл мааниси бар тип, б.а. "бош маани" же "маани жок",
аныкталбаган - бир аныкталбаган мааниси бар тип, б.а. "баа коюлган эмес"
объект жана символ – татаал маалымат структуралары жана уникалдуу идентификаторлор; биз аларды азырынча изилдей элекпиз.
typeof оператору эки башканы эске албаганда, өзгөрмөнүн маани түрүн кайтарат:
typeof null == "объект" // тил катасы
typeof function(){} == "функция" // жөн гана функциялар үчүн
Толук маалымат: Өзгөрмөлөр, Маалымат түрлөрү.
Коноктордун өз ара аракеттенүүсү
Биз браузерди иштөө чөйрөсү катары колдонобуз, ошондуктан конок менен өз ара аракеттенүү үчүн эң жөнөкөй функциялар:
суроо(суроо, [демейки])
Суроо коюучу суроону коет жана конок эмне киргизгенин кайтарат, же эгер конок "Жокко чыгаруу" баскычын чыкса, нөл.
ырастоо (суроо)
Суроо берип, OK же Жокко чыгарууну тандоону сунуштайт. Тандоо чын/жалган форматта кайтарылат.
эскертүү (билдирүү)
Билдирүү билдирүүсүн көрсөтөт.Бул функциялардын бардыгы модальдарды көрсөтөт, алар коддун аткарылышын токтотуп, суроого жооп берилгенге чейин келүүчүгө баракча менен иштешүүгө жол бербейт.
Мисалы:
let userName = prompt("Атын киргизиңиз", "Алиса");
let isTeaWanted = confirm("Чай келеби?");
alert( "Конок: " + userName ); // Алиса
alert( "Чай: " + isTeaWanted ); // чын
Чоо-жайы: Өз ара аракеттенүү: эскертүү, ыкчам, ырастоо.
Операторлор
JavaScript төмөнкү операторлорду колдойт:
Арифметика
Жөнөкөй * + - /, ошондой эле % модулу жана экспонентация **.
бинардык плюс + саптарды бириктирет. Эгерде операнддардын бири сап болсо, экинчиси да сапка айланат:
alert( '1' + 2 ); // '12', сап
alert( 1 + '2' ); // '12', сап
Дайындоо операторлору
Жөнөкөй a = b жана татаал a *= 2.
Bit Operations
Биттик операторлор 32 биттик бүтүн сандарда эң төмөнкү, бит деңгээлинде иштешет. Аларды колдонуу жөнүндө кененирээк MDN ресурсунда жана Bitwise Operators бөлүмүндө окуй аласыз.
Шарттуу оператор
Үч параметри бар жалгыз оператор: cond ? жыйынтыкA: натыйжа B. Эгерде шарт туура болсо, натыйжа A кайтарылат, болбосо натыйжа B.
Логикалык операторлор
Логикалык ЖАНА &&, ЖЕ || "жалкоо баалоо" деп аталган нерсени колдонуңуз жана маанини токтогон жерине кайтарыңыз (сөзсүз эле чын же жалган эмес). Логикалык ЭМЕС! операндды логикага айландырат жана инверттелген маанини кайтарат.
null бириктирүү оператору
оператор?? өзгөрмөлөрдүн тизмесинен белгилүү бир маанини тандоо жолун камсыз кылат. Натыйжа а ?? Эгерде ал нөл/аныкталбаса, b болот, анда b.
Салыштыруу
Ар кандай типтеги маанилердин == теңдигин текшерүү аларды санга айлантат (нөл жана аныкталбагандан башкасы, алар бири-бирине барабар болот), ошондуктан төмөндөгү мисалдар бирдей:
alert( 0 == false ); // чын
alert( 0 == '' ); // чын
Башка салыштыруу операторлору да ар кандай типтеги маанилерди сандык түргө айландырышат.
Катуу теңдик оператору === өзгөртпөйт: ар кандай типтер ар дайым ал үчүн ар кандай маанилерди билдирет.
null жана undefined баалуулуктары өзгөчө: алар бир гана == бири-бирине барабар, башка эч нерсеге барабар эмес.
Чоң/кичине салыштыруу операторлору саптарды символ боюнча салыштырышат, башка түрлөрү санга айландырылат.
Башка операторлор
Үтүр сыяктуу башка операторлор бар.
Толук маалымат: Негизги операторлор, математика, салыштыруу операторлору, логикалык операторлор, нөлдү бириктирүү оператору (??).
Циклдер
Биз циклдердин үч түрүн изилдедик:
// 1
ал эми (шарт) {
...
}
// 2
кыл {
...
} while (шарт);
// 3
for(лет i = 0; i < 10; i++) {
...
}
for(let...) циклинде жарыяланган өзгөрмө циклдин ичинде гана көрүнөт. Бирок биз let'ти калтырып, учурдагы өзгөрмөнү кайра колдонсок болот.Break/Continue директивалары цикл/учурдагы итерациядан чыгууга мүмкүндүк берет. Уюшкан циклдерден чыгуу үчүн энбелгилерди колдонуңуз.
Чоо-жайы: while жана for циклдери.
Кийинчерээк биз объекттер менен иштөө үчүн илмектердин көбүрөөк түрлөрүн үйрөнөбүз.
Которуу дизайны
"Которуу" конструкциясы бир нече if текшерүүнү алмаштыра алат. Салыштырууда катуу теңдик операторун колдонот ===.
Мисалы:
let age = prompt('Сиз канча жаштасыз?', 18);
которуштуруу (жаш) {
иш 18:
alert("Бул иштебейт"); // чакыруу - бул сан эмес, сап
"18" учуру:
alert("Бул иштейт!");
үзүү;
демейки:
alert("Жогорудагы мааниге барабар эмес ар кандай маани");
}
Толук маалымат: "которуу" курулушу.
Функциялар
Биз JavaScript'те функцияны түзүүнүн үч жолун карадык:
Функциянын декларациясы: негизги код агымындагы функция
функция суммасы(a, b) {
натыйжа болсун = a + b;
натыйжаны кайтаруу;
}
Функциянын туюнтмасы: туюнтумдун бир бөлүгү катары функция
сумма = функция(a, b) {
натыйжа болсун = a + b;
натыйжаны кайтаруу;
};
Жебе функциялары:
// оң жагындагы туюнтма
суммасы = (a, b) => a + b;
// тармал кашаадагы көп саптуу код { ... }, бул жерде кайтаруу керек:
суммасы = (a, b) => {
// ...
a + b кайтаруу;
}
// аргументтер жок
let sayHi = () => alert("Салам");
// бир аргумент менен
let double = n => n * 2;
Функциялар жергиликтүү өзгөрмөлөргө ээ болушу мүмкүн: б.а. функциялык органда жарыяланды. Мындай өзгөрмөлөр функциянын ичинде гана көрүнөт.
Параметрлердин демейки маанилери болушу мүмкүн: функциянын суммасы(a = 1, b = 2) {...}.
Функциялар ар дайым бир нерсени кайтарат. Эгерде кайтаруу билдирүүсү жок болсо, натыйжа аныкталбайт.Толук маалымат: Функциялар, Жебе функциялары, негиздер.
Кийинки, биз көбүрөөк изилдейбиз
Бул JavaScript функцияларынын кыскача тизмеси болчу. Азырынча биз негизги нерселерди гана карап чыктык. Кийинчерээк окуу куралында сиз JavaScriptтин көбүрөөк мүмкүнчүлүктөрүн жана өркүндөтүлгөн мүмкүнчүлүктөрүн таба аласыз.