JavaScript. Айнымалылар (жаһандық, жергілікті, тұрақтылар). Eval - зұлымдық

Бағдарлама кейінірек пайдалану үшін мәнді сақтау қажет болғанда, бұл мән айнымалыға тағайындалады. Айнымалы – бұл мәнді аты бойынша алу мүмкіндігін қамтамасыз ететін мәннің жай ғана символдық атауы, яғни программа айнымалының атын көрсеткенде оның орнына мән ауыстырылады.

Айнымалы өз атауын программаны орындау кезінде оның мәнін өзгертуге болатындығына байланысты алды.

Тұрақтылар

Тұрақты - мәннің символдық атауы. Тұрақты мәнге аты бойынша сілтеме жасауға мүмкіндік береді, яғни бағдарлама тұрақтының атын көрсеткенде оның орнына мән ауыстырылады. Тұрақтылар бағдарламаны орындау кезінде өзгермеуі керек мәліметтерді сақтау үшін қолданылады.

Тұрақтыны қолданар алдында оны жариялау керек. Тұрақтылар константаның атынан кейін const кілт сөзі арқылы жарияланады. Бағдарламалық кодта тұрақтыларды айнымалылардан ажырату үшін бас әріппен жазылған тұрақтылардың атауларын беруге келісті:

Const MAX = 10;

Тұрақты жасалғаннан кейін оны айнымалыға қайта анықтау әрекеті немесе бар тұрақтыға мән тағайындауға әрекет жасау қатені тудырады.

Айнымалылар мен тұрақтылар не үшін қажет?

Айнымалылар мен тұрақтылар сізге көмектеседі бағдарлама кодыанық. Шағын мысалды қарастырайық:

Жалпы баға = 2,42 + 4,33; // Жалпы баға

Мұндағы сандар кез келген нәрсені білдіруі мүмкін. Мұнда нақты не айтылғанын түсіну үшін 2,42 мәнін конфеттің айнымалы (немесе тұрақты) бағасына (кәмпит бағасы) және айнымалы (немесе тұрақты) мұнай бағасына (мұнай бағасы) 4,33 беруге болады:

Жалпы баға = кәмпиттерБағасы + май бағасы;

Енді бұл мәндердің нені білдіретінін есте сақтаудың орнына, сценарий кәмпит бағасын сары майдың бағасына қосатынын көре аласыз.

Сондай-ақ, айнымалылар мен тұрақтылар сценарийді жөндеу кезінде уақытты үнемдеуге көмектеседі. Барлық жерде бірдей литералды пайдаланудың орнына оны сценарийдің басындағы айнымалыға (немесе тұрақтыға) тағайындауға болады, содан кейін сценарий кодының қалған бөлігінде литералдың орнына айнымалы мәнді (немесе тұрақты) пайдалануға болады. Егер мәнді өзгерту туралы шешім кейінірек қабылданса, онда кодқа өзгертулер бірнеше жерде емес, тек бір жерде - мән айнымалыға (немесе тұрақтыға) тағайындалған жерде жасалуы керек.

Тұрақтылардың қолданылу аясы

Сол ережелер let кілт сөзімен жарияланған айнымалылар сияқты тұрақтыларға да қолданылады:

Const MAX = 5; // Ғаламдық тұрақты ( const MAX = 10; // Блок тұрақты console.log(MAX); // 10 ) console.log(MAX); // 5 foo(); // 15 console.log(MAX); // 5 функциясы foo() ( const MAX = 15; // Жергілікті тұрақты console.log(MAX); )

Тұрақтылар және сілтеме түрлері

Тұрақтыға сілтеме түрінің мәні тағайындалғанда, мәнге сілтеме өзгермейтін болады, ал мәннің өзі өзгермелі болып қалады:

Const obj = (a: 5); obj.a = 10; console.log(obj.a); // 10

Бұл мақалада сіз қалай анықтау керектігін білесіз JavaScript-тегі тұрақтылар кілт сөз const.

ES6қамтамасыз етеді жаңа жолкілт сөзді пайдаланып тұрақты мәндерді жариялау const. Негізгі сөз constтек оқуға арналған мәнге сілтеме жасайды.

Тұрақты VARIABLE_NAME = мән;

Келісім бойынша, JavaScript тұрақты идентификаторлары бас әріптермен жазылады.

Негізгі сөз constкілтке ұқсайды рұқсат деген сөзол блоктық ауқымды айнымалыларды жасайды, бірақ олармен жарияланған мәндер const, өзгерту мүмкін емес.

Кілт сөзбен жарияланған айнымалылар болсынболып табылады өзгермелі. Бұл келесі мысалда көрсетілгендей олардың мәндерін кез келген уақытта өзгертуге болатынын білдіреді.

v = 10 болсын;
v = 20;
v = v + 5;
console.log(v); // 35

Дегенмен, кілт сөзбен жасалған айнымалылар const, өзгермейді. Басқаша айтқанда, оларды әртүрлі мәндерге қайта тағайындай алмайсыз. Тұрақты айнымалыны қайта тағайындауға әрекет жасау тип қатесіне әкеледі TypeError .

Тұрақты САЛЫҚ = 0,1;
САЛЫҚ = 0,2; //TypeError

Сонымен қатар, кілт сөзді пайдаланып жарияланған айнымалы const,мәнмен дереу инициализациялануы керек. Келесі мысал шақырады Синтаксистік қате(синтаксистік қате) тұрақты айнымалыны жариялауда инициализатордың болмауына байланысты.

Тұрақты ҚЫЗЫЛ; // Синтаксистік қате

Бұрын айтылғандай, кілт сөзбен жарияланған айнымалылар сияқты болсын, кілт сөзбен жарияланған айнымалылар const,блоктық ауқымы бар.

Мұның бәрі және келесі мақалада біз кілт сөзді пайдалану туралы айтатын боламыз constнысан литералдарымен JavaScript.

Соңғы жаңарту: 04/05/2018

Айнымалылар бағдарламада деректерді сақтау үшін қолданылады. Айнымалылар жұмыс кезінде оның мәнін өзгерте алатын кейбір уақытша деректерді немесе деректерді сақтауға арналған. var және let кілт сөздері айнымалы мәндерді жасау үшін пайдаланылады. Мысалы, myIncome айнымалысын жариялайық:

Var myIncome; // басқа опция myIncome2 мүмкіндік береді;

Әрбір айнымалының аты бар. Атау әріптік-цифрлық таңбалардың кездейсоқ жолы, астын сызу (_) немесе доллар белгісі ($) және атаулар сандық таңбалардан басталмауы керек. Яғни, атауда әріптерді, сандарды, астын сызуды пайдалана аламыз. Дегенмен, барлық басқа кейіпкерлерге тыйым салынады.

Мысалы, дұрыс айнымалы атаулар:

$commission someVariable product_Store кірісі2 myIncome_from_deposit

Келесі атаулар дұрыс емес және оларды пайдалану мүмкін емес:

222lol @someVariable менің% пайызым

Сондай-ақ, сақталған кілт сөздерге сәйкес келетін айнымалы атауларды бере алмайсыз. JavaScript-те кілт сөздер көп емес, сондықтан бұл ережеұстану қиын емес. Мысалы, келесі атау қате болар еді, себебі for JavaScript тіліндегі кілт сөз:

Var for;

JavaScript-те сақталған сөздердің тізімі:

абстракт, логикалық, үзіліс, байт, жағдай, ұстау, таңба, сынып, const, жалғастыру, отладчик, әдепкі, жою, істеу, қос, басқа, enum, экспорт, кеңейту, жалған, қорытынды, ақырында, қалқымалы, үшін, функция, goto, егер, жүзеге асырады, импорттау, in, instanceof, int, интерфейс, ұзын, жергілікті, жаңа, нөл, бума, жеке, қорғалған, жалпы, қайтару, қысқа, статикалық, супер, ауыстырып қосу, синхрондалған, бұл, тастау, лақтыру, өтпелі, шын, try, typeof, var, өзгермелі, void, while, with

Айнымалыларды атағанда, JavaScript екенін есте сақтаңыз регистрге сезгіштіл, яғни келесі кодта екі түрлі айнымалы жарияланған:

Var myIncome; Var MyIncome;

Үтірмен бөлінген бірнеше айнымалы мәндерді бірден анықтауға болады:

Var myIncome, пайыз, сома; a, b, c болсын;

Теңдік белгісін пайдалану (сонымен бірге тағайындау операторы) айнымалыға кез келген мәнді тағайындай аласыз:

Var табысы = 300; бағасы = 76 болсын;

Айнымалыға бастапқы мәнді тағайындау процесі инициализация деп аталады.

Енді кіріс айнымалысы 300 санын, ал баға айнымалысы 76 санын сақтайды.

Айнымалылар туралы керемет нәрсе - біз олардың мәнін өзгерте аламыз:

Var табысы = 300; табыс = 400; console.log(кіріс); бағасы = 76 болсын; бағасы = 54; console.log(бағасы);

Тұрақтылар

const кілт сөзін пайдаланып, айнымалы сияқты мәнді сақтайтын тұрақты мәнді анықтауға болады, бірақ бұл мәнді өзгерту мүмкін емес.

Тұрақтылық коэффициенті = 10;

Егер оның мәнін өзгертуге әрекет жасасақ, қатеге тап боламыз:

Тұрақтылық коэффициенті = 10; мөлшерлемесі = 23; // қате, жылдамдық тұрақты, сондықтан оның мәнін өзгерте алмаймыз

Сондай-ақ айта кететін жайт, біз тұрақтының мәнін өзгерте алмайтындықтан, оны инициализациялау керек, яғни оны анықтаған кезде біз оны бастапқы мәнмен қамтамасыз етуіміз керек. Егер біз мұны жасамасақ, қайтадан қатеге тап боламыз:

const жылдамдығы; // қате, жылдамдық инициализацияланбаған

Функция әрекетті орындайтын немесе мәнді қайтаратын код блогы болып табылады. Функциялар - қайта пайдалануға болатын теңшелетін код; Сондықтан функциялардың арқасында бағдарламалар модульдік және өнімдірек болады.

Бұл оқулық JavaScript тілінде функцияны анықтау және шақыру және функция параметрлерін пайдаланудың бірнеше жолдарын ұсынады.

Функция анықтамасы

Функциялар функция түйінді сөзі арқылы анықталады немесе жарияланады. JavaScript-тегі функция синтаксисі келесідей көрінеді:

функция nameOfFunction() (
// Орындалатын код
}

Функцияның мәлімдемесі функцияның атауынан кейін функция кілт сөзінен басталады. Функция атаулары айнымалы атаулармен бірдей ережелерді сақтайды: оларда әріптер, сандар, астын сызу және доллар белгілері болуы мүмкін және көбінесе түйе регистрінде жазылады. Атаудан кейін қосымша параметрлер үшін пайдалануға болатын жақшалар жинағы болады. Функция коды for немесе if операторы сияқты бұйра жақшаларда болады.

Байқағаныңыздай, атау параметрінің мәні кодта тағайындалмаған, бұл функция шақырылған кезде орындалады. Функцияны шақырған кезде пайдаланушы аты аргумент ретінде беріледі. Аргумент – функцияға жіберілетін нақты мән (бұл жағдайда пайдаланушы аты, мысалы, 8 хост).

// Сәлемдесу функциясын аргумент ретінде "8host" арқылы шақырыңыз
сәлемдесу («8 хост»);

8host мәні функцияға name параметрі арқылы беріледі. Енді name параметрі осы функцияда осы мәнді көрсетеді. greetUser.js файлының коды келесідей:

// Теңшелетін сәлемдесу функциясын инициализациялау
сәлемдесу функциясы (аты) (
console.log(`Сәлеметсіз бе, $(аты)!`);
}
// Сәлемдесу функциясын аргумент ретінде "8host" арқылы шақырыңыз
сәлемдесу («8 хост»);

Бұл бағдарламаны іске қосқан кезде сіз келесі нәтижені аласыз:

Енді сіз функцияны қалай қайта пайдалану керектігін білесіз.

Параметрлерден басқа айнымалылар функциялардың ішінде жариялануы мүмкін. Бұл айнымалылар жергілікті деп аталады және олардың функционалды блогында ғана бар. Айнымалылар ауқымы айнымалылардың қолжетімділігін анықтайды; Функция ішінде анықталған айнымалыларға функция сыртынан қол жеткізу мүмкін емес, бірақ олар тиесілі функция программада қанша рет қолданылса, сонша рет пайдалануға болады.

Мәндерді қайтару

Функцияда бірнеше параметрді пайдалануға болады. Функцияға бірнеше мәндерді беруге және мәнді қайтаруға болады. Мысалы, sum.js файлын жасаңыз және онда x және y екі мәннің қосындысын табатын функцияны жариялаңыз.

// Қосу функциясын инициализациялау
қосу(x,y) функциясы
қайтару x + y;
}

қосу(9, 7);

Бұл код x және y параметрлері бар функцияны анықтайды. Содан кейін функция 9 және 7 мәндерін алады. Бағдарламаны іске қосыңыз:

Бағдарлама 9 және 7 мәндерін қосады және нәтижені 16 қайтарады.

Қайтару кілт сөзі пайдаланылғанда, функция орындауды тоқтатады және өрнектің мәнін қайтарады. Бұл жағдайда браузер мәнді консольде көрсетеді, бірақ бұл консольге шығару үшін console.log() пайдаланумен бірдей емес. Шақырылған кезде функция мәнді қайдан шақырылғанына қарай шығарады. Бұл мәнді қолдануға немесе айнымалыға орналастыруға болады.

Функция өрнектері

Алдыңғы бөлімде сіз екі санды қосатын және алынған мәнді қайтаратын функцияны жарияладыңыз. Сондай-ақ, функцияны айнымалыға тағайындау арқылы функция өрнегін жасауға болады.

Алдыңғы функцияны қосынды айнымалысына нәтиже мәнін қолдану үшін пайдаланыңыз.

// Қосынды тұрақтысына қосу функциясын тағайындаңыз
тұрақты қосынды = функция қосу(x, y) (
қайтару x + y;
}
// Қосындыны табу үшін функцияны шақырыңыз
қосынды(20, 5);
25

Енді тұрақты қосынды функция болып табылады. Бұл өрнекті анонимді функцияға айналдыру арқылы қысқартуға болады (аты параметрі жоқ функциялар осылай аталады). Қазіргі уақытта функция қосу деп аталады, бірақ функция өрнектерінде атау әдетте өткізілмейді.

// Қосынды тұрақтысына функцияны тағайындау
тұрақты қосынды = функция(x, y) (
қайтару x + y;
}
// Қосындыны табу үшін функцияны шақырыңыз
сома(100, 3);
103

Енді функцияның аты жоқ, ол анонимді болды.

Атаулы функция өрнектерін жөндеу үшін пайдалануға болады.

Көрсеткі функциялары

Осы уақытқа дейін функциялар function кілт сөзі арқылы анықталған. Дегенмен, функцияны анықтаудың жаңа және қысқарақ жолы бар - ECMAScript 6 көрсеткі функциялары. Көрсеткі функциялары тең белгісінен кейін үлкенірек белгісімен көрсетіледі: =>.

Көрсеткі функциялары әрқашан анонимді және функция өрнегі түрі болып табылады. Екі санның қосындысын табу үшін негізгі көрсеткі функциясын жасап көріңіз.

// Көбейту функциясын анықтаңыз
тұрақты көбейту = (x, y) => (
қайтару x * y;
}

көбейту(30, 4);
120

Жазу функциясының орнына жай ғана => таңбаларын қолдануға болады.

Егер функцияның тек бір параметрі болса, жақшаларды алып тастауға болады. Келесі мысалда функция x квадраттарын құрайды, сондықтан оған аргумент ретінде тек бір сан қажет.

// Квадрат функциясын анықтаңыз
тұрақты квадрат = x => (
қайтару x * x;
}
// Өнімді табу үшін функцияны шақырыңыз
шаршы(8);
64

Ескерту: Көрсеткі функциясында параметрлер болмаса, бос жақшаларды () қосу керек.

Тек қайтару операторынан тұратын көрсеткі функцияларын қысқартуға болады. Функция тек бір қайтару жолынан тұрса, төмендегі мысалдағыдай бұйра жақшаларды және қайтару операторын өткізіп жіберуге болады.

// Квадрат функциясын анықтаңыз
const шаршы = x => x * x;
// Өнімді табу үшін функцияны шақырыңыз
шаршы(10);
100

Қорытынды

Бұл оқулық функцияларды, функция өрнектерін және көрсеткі функцияларын жариялау, мәндерді қайтару және айнымалыларға функция мәндерін тағайындаумен таныстырады.

Функция – мәнді қайтаратын немесе әрекетті орындайтын код блогы.

Тегтер:

Автордан:Мүмкін, бұл таңқаларлық болар, бірақ JavaScript ұзақ уақыт бойы тұрақтыларға қолдау таппай келеді, яғни. бүкіл сценарийді орындау барысында өзгермейтін тіркелген мәндер. Кез келген балама болмаған жағдайда, көптеген тұрақтылар айнымалылар арқылы жарияланды.

Айнымалыны пайдаланып тұрақтыны жариялау мысалы:

var DAYSINWEEK = 7;

var DAYSINWEEK = 7 ;

Бұл қауіпті және практикалық емес, себебі ол кез келген уақытта сценарийдегі DAYSINWEEK айнымалысының мәнін өзгертуге мүмкіндік береді. Әзірлеушілер айнымалы мәндерді JavaScript тіліндегі тұрақты айнымалылардан айырудың әртүрлі тәсілдерін ойлап тапты, айнымалыларды ТЕК БАС ӘРІПТЕРМЕН атаудан бастап (ең жақсы тәжірибе) мен кейінірек айтатын шешімдерге дейін. Бақытымызға орай, в соңғы нұсқасы ECMAScript (стандарт болып табылатын спецификация) осы тұрақтыны енгізді:

JavaScript. Жылдам бастау

const DAYSINWEEK = 7;

const DAYSINWEEK = 7 ;

Енді DAYSINWEEK айнымалы ретінде кіруге болады, бірақ оның мәнін ешқашан өзгерте алмайсыз:

console.log(DAYSINWEEK); > 7 КҮН АПТА = 8; > қате

консоль. журнал(DAYSINWEEK);

DAYSINWEEK = 8;

> қате

Тұрақты мән жарияланғаннан кейін (тұрақтылар const кілт сөзімен инициализациялануы керек, содан кейін айнымалы атау ережелеріне сәйкес тұрақты атау болуы керек), оның атауы сақталады: DAYSINWEEK айнымалысына енді ат бере алмайсыз және сол атпен тұрақтыға ие бола алмайсыз. , немесе керісінше.

const кілт сөзі заманауи браузерлерде жақсы қолдауға ие: IE11 және Spartan, Firefox 31+, Opera 12+, Safari 5.1.7+, iOS 7 және одан жоғары нұсқалары, сонымен қатар Chrome 36+. Дегенмен, бірнеше маңызды ескертулер бар:

Chrome тұрақты мәнді қайта жазу әрекеті кезінде қатені көрсетуді қолдамайды. Тұрақтының мәні кез келген жағдайда өзгертілмейді, бірақ тәжірибесіз әзірлеуші ​​қате шықпағандықтан жаңа мән қолданылды деп ойлауы мүмкін.

JavaScript. Жылдам бастау

Веб-қосымшаны жасаудың практикалық мысалы арқылы JavaScript негіздерін үйреніңіз.

Тұрақтылар Webkit-те жаңа аумақты жасамайды. Анау. тұрақты мәндер ағымдағы аумақтан тыс көрінуі мүмкін.

Firefox 35 және одан төмен нұсқалары const мәнін жылдам өзгертуге мүмкіндік береді. Бұл бекітілген Firefox нұсқалары 36+.

Сондай-ақ, Webkit-пен проблемалар қатаң режимді пайдаланбаған жағдайда ғана пайда болатынын атап өткен жөн (ол туралы болашақ мақалада талқыланады).

Қазір нақты жобаларда const кілт сөзін қолдануға болады ма?

Кодыңызда const кілт сөзін пайдалану немесе қолданбау бірнеше факторларға байланысты болады: ең бастысы - сайтқа кірушілер браузерлердің қандай нұсқаларын пайдаланып жатқаны, өйткені const кілт сөзін пайдалану IE10 сияқты браузерлерде қате болып саналады. . Егер сіз әзірлеуде const кілт сөзін қолданғыңыз келсе, бірақ оны нақты жобаларда пайдалануға дайын болмасаңыз, сізде бірнеше нұсқа бар:

1-нұсқа: транспилер («транспилер») пайдаланыңыз

Транспиляторлар, аты айтып тұрғандай, компиляция уақытында кодыңызды басқа тілге түрлендіреді: бұл жағдайда ES6 спецификациясының нұсқасынан (const кілт сөзін енгізген) ES5-ке дейін. Бұл кодты көбірек жазуға мүмкіндік береді жаңа нұсқасытілі, бірақ нақты жоба браузерлердің кең ауқымымен үйлесімді нұсқаны пайдаланады. Ән жазған Эдди Османи

Байланыс