Js ΠΊΠΎΠ΄ это: Ρ‡Ρ‚ΠΎ это ΠΈ для Ρ‡Π΅Π³ΠΎ Π½ΡƒΠΆΠ΅Π½ этот язык программирования

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ JS? | JS: Настройка окруТСния

Π—Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ для доступа ΠΊ 15+ бСсплатным курсам ΠΏΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ с Ρ‚Ρ€Π΅Π½Π°ΠΆΠ΅Ρ€ΠΎΠΌ

Π§Ρ‚ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ Ρ‚Π°ΠΊΠΎΠ΅ язык программирования?

Π―Π·Ρ‹ΠΊΠΎΠΌ программирования Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»Π°, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ записываСтся исходный ΠΊΠΎΠ΄. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ СстСствСнных языков, эти ΠΏΡ€Π°Π²ΠΈΠ»Π° достаточно строги. Π›ΡŽΠ±Π°Ρ ΠΌΠ΅Π»ΡŒΡ‡Π°ΠΉΡˆΠ°Ρ ошибка β€” ΠΈ ΠΊΠΎΠ΄ Π½Π΅ запустится, ΠΈΠ»ΠΈ запустится, Π½ΠΎ Π½Π΅ Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ оТидаСтся. НапримСр, Π² JavaScript нСльзя Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ const name;. Π­Ρ‚ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π° ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΊΠ½ΠΈΠ³Π°Ρ… ΠΈ Π³ΠΎΠ»ΠΎΠ²Π°Ρ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΏΠΈΡˆΡƒΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° этом языкС. Они Ρ‡Π΅Ρ‚ΠΊΠΎ описаны Π² спСцификации β€” Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΈΠΊΡ‚ΡƒΠ΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»Π°, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ язык.

БинтаксичСски ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ это Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π° Π΄Π΅Π»Π°. Он Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ это всСго лишь тСкст. ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΡƒΠΌΠ΅Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»Π½ΡΡ‚ΡŒ лишь ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ (Π½ΡƒΠ»ΠΈ ΠΈ Π΅Π΄ΠΈΠ½ΠΈΡ‡ΠΊΠΈ). Для прСвращСния исходного ΠΊΠΎΠ΄Π° Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Π΄Π²Π° ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ – процСсс создания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π³ΠΎΡ‚ΠΎΠ²ΠΎΠΉ ΠΊ прямому запуску.

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ Π΄Π΅Π»ΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ, ΠΊΠ΅ΠΌ-Ρ‚ΠΎ скомпилированы. НапримСр, Π² Windows скомпилированныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ exe. Π”Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ – интСрпрСтация. ΠŸΡ€ΠΈ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠΈ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ исходного ΠΊΠΎΠ΄Π° Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ происходит Π½Π΅ Π΄ΠΎ запуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π° прямо Π² процСссС Π΅Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. ИмСнно поэтому сам ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ называСтся ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ.

JavaScript относится ΠΊ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ языкам. Для Π΅Π³ΠΎ запуска Π½ΡƒΠΆΠ½Π° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° – ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€. НапримСр, ΠΊΠΎΠ³Π΄Π° JavaScript ΠΊΠΎΠ΄ выполняСтся Π½Π° сСрвСрС, ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ Ρ‡Π°Ρ‰Π΅ всСго выступаСт Node.js, ΠΊΠΎΠ³Π΄Π° Π½Π° Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄Π΅ β€” сам Π±Ρ€Π°ΡƒΠ·Π΅Ρ€. Π’ Π΄Ρ€ΡƒΠ³ΠΈΡ… мСстах, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ встраиваСмыС устройства ΠΈΠ»ΠΈ Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΠΈ, ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ свои собствСнныС ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹.

Π’ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ всС Ρ‡ΡƒΡ‚ΡŒ слоТнСС. НСпосрСдствСнно ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ†ΠΈΡŽ выполняСт «Π΄Π²ΠΈΠΆΠΎΠΊ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ встроСн ΠΈ Π² Node.js, ΠΈ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹.

// node запускаСт ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Π΅Ρ€Π΅Ρ‚ исходный ΠΊΠΎΠ΄ index.js,
// Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Π΅Π³ΠΎ (это называСтся парсинг),
// Π° Π·Π°Ρ‚Π΅ΠΌ построчно исполняСт
node index.
js

Π“Π»ΠΎΠ±Π°Π»ΡŒΠ½ΠΎ сущСствуСт Π΄Π²Π° Π±ΠΎΠ»ΡŒΡˆΠΈΡ… класса языков – интСрпрСтируСмыС ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· этих Π³Ρ€ΡƒΠΏΠΏ Π΅ΡΡ‚ΡŒ свои ΠΏΠ»ΡŽΡΡ‹ ΠΈ минусы, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΡΡ‚Π°Ρ‚ΡŒΡΡ…. Π—Π΄Π΅ΡΡŒ ΠΆΠ΅ ΠΌΡ‹ сосрСдоточимся Π½Π° особСнностях ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ JavaScript.

Π˜ΡΡ‚ΠΎΡ€ΠΈΡ‡Π΅ΡΠΊΠΈ JavaScript разрабатывался ΠΏΠΎΠ΄ самый популярный Π½Π° Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€. Новый язык позволял Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ Π½Π° страницы, хотя ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ всС сводилось ΠΊ снСТинкам ΠΈ Ρ€Π°Π·Π½Ρ‹ΠΌ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ эффСктам. Π‘ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ распробовали этот язык ΠΈ стали Π°ΠΊΡ‚ΠΈΠ²Π½Π΅Π΅ ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ с Π΅Π³ΠΎ участиСм. Одним ΠΈΠ· самых извСстных ΠΏΠΎΠ²ΠΎΡ€ΠΎΡ‚Π½Ρ‹Ρ… ΠΌΠΎΠΌΠ΅Π½Ρ‚ΠΎΠ² стало появлСниС сСрвиса Gmail, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π° ΠΏΠΎΠ»Π½ΡƒΡŽ ΠΊΠ°Ρ‚ΡƒΡˆΠΊΡƒ использовал AJAX (Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ HTTP-запросов ΠΊ сСрвСру). JavaScript Π½Π°Ρ‡ΠΈΠ½Π°Π» ΠΈΠ³Ρ€Π°Ρ‚ΡŒ всС Π±ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π² создании сайтов, ΠΈ ΡƒΠΆΠ΅ всС Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Ρ‹ ΠΎΠ·Π°Π΄Π°Ρ‡ΠΈΠ²Π°Π»ΠΈΡΡŒ Π΅Π³ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ. Для этого практичСски ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΡ€ΡƒΠΏΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π° создавал свой собствСнный ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€.

Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅Π΅ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Π²Ρ‹Π²Π΅Π»ΠΎ JavaScript Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°. Π‘Π½Π°Ρ‡Π°Π»Π° появилась сСрвСрная рСализация Node.js, Π·Π°Ρ‚Π΅ΠΌ ΠΎΠ½ стал ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π΄Π°ΠΆΠ΅ Π²ΠΎ встраиваСмых систСмах. БСйчас Π΄Π°ΠΆΠ΅ ΡƒΡ‚ΡŽΠ³ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ JavaScript.

ОбилиС Ρ€Π°Π·Π½Ρ‹Ρ… ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠ², с ΠΎΠ΄Π½ΠΎΠΉ стороны, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ JavaScript Π²Ρ‹ΠΉΡ‚ΠΈ Π΄Π°Π»Π΅ΠΊΠΎ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π°, с Π΄Ρ€ΡƒΠ³ΠΎΠΉ β€” ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ совмСстимости. Один ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΊΠΎΠ΄ ΠΌΠΎΠ³ вСсти сСбя ΠΏΠΎ Ρ€Π°Π·Π½ΠΎΠΌΡƒ Π² Ρ€Π°Π·Π½Ρ‹Ρ… мСстах. Для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ этой ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π±Ρ‹Π» создан стандарт ECMAScript. Π­Ρ‚ΠΎ большой ΠΈ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ устройство языка ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π²ΠΎ всСх Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ситуациях. Он ΠΏΠΎΠ»Π΅Π·Π΅Π½ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² языка, Π½ΠΎ ΠΈ для ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Ρ… программистов. Когда Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ нСпонятно Π² ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΈ JavaScript, Ρ‚ΠΎ ΠΎΡ‚Π²Π΅Ρ‚ всСгда ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ECMAScript.

ECMAScript Π½Π΅ стоит Π½Π° мСстС ΠΈ постоянно развиваСтся. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Π½ΠΎΠ²Ρ‹ΠΉ стандарт описываСт ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ возмоТности языка. Одни Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ Π½ΠΎΠ²Ρ‹ΠΉ синтаксис, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΡΡŽΡ‚ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π½ΠΎΠ²Ρ‹ΠΌΠΈ встроСнными функциями. Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Ρ‹ ΠΏΠΎ большСй части ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ совмСстимы: Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΊΠΎΠ΄, написанный ΠΏΠΎΠ΄ стандарт es3, запустится Π½Π° Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠ². К соТалСнию, это Π½Π΅ всСгда происходит Π±Π΅Π· ошибок. ПовСдСниС ΠΊΠΎΠ΄Π° со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ мСняСтся, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π² сторону Π±ΠΎΠ»Π΅Π΅ строгого повСдСния.

ПишСм чистый ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ JavaScript-ΠΊΠΎΠ΄: 12 совСтов / Π₯Π°Π±Ρ€

Π―Π·Ρ‹ΠΊ JavaScript Ρ€ΠΎΠ΄ΠΎΠΌ ΠΈΠ· Ρ€Π°Π½Π½Π΅Π³ΠΎ Π²Π΅Π±Π°. Π‘Π½Π°Ρ‡Π°Π»Π° Π½Π° Π½Ρ‘ΠΌ писали простыС скрипты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ «оТивляли» страницы сайтов. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΆΠ΅ JS прСвратился Π² ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΉ язык программирования, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°ΠΆΠ΅ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сСрвСрных ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π²Π΅Π±-прилоТСния сильно зависят ΠΎΡ‚ JavaScript. ОсобСнно это касаСтся одностраничных ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (Single-Page Application, SPA). Π‘ появлСниСм Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ ΠΈ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΎΠ², Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ React, Angular ΠΈ Vue, JavaScript стал ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· основных ΡΡ‚Ρ€ΠΎΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ² Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

ΠœΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈΠ΄Ρ‘Ρ‚ Π»ΠΈ Ρ€Π΅Ρ‡ΡŒ ΠΎΠ± ΠΈΡ… клиСнтских ΠΈΠ»ΠΈ сСрвСрных частях, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ вСсьма нСпростой Π·Π°Π΄Π°Ρ‡Π΅ΠΉ. Если Π² основС Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π»Π΅ΠΆΠΈΡ‚ ΠΏΠ»ΠΎΡ…ΠΎ продуманная Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°, Ρ‚ΠΎ ΠΈΡ… Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ€Π°Π½ΠΎ ΠΈΠ»ΠΈ ΠΏΠΎΠ·Π΄Π½ΠΎ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΌΠΈ ограничСниями. Они Ρ‚ΠΎΠ½ΡƒΡ‚ Π² ΠΌΠΎΡ€Π΅ нСприятных нСоТиданностСй.

Автор ΡΡ‚Π°Ρ‚ΡŒΠΈ, ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΡ‹ сСгодня ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅ΠΌ, Ρ…ΠΎΡ‡Π΅Ρ‚ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ совСтами ΠΏΠΎ написанию чистого JavaScript-ΠΊΠΎΠ΄Π°. Он Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Ρ‡Ρ‚ΠΎ ΡΡ‚Π°Ρ‚ΡŒΡ рассчитана Π½Π° JS-программистов с Π»ΡŽΠ±Ρ‹ΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ. Но особСнно ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ для Ρ‚Π΅Ρ…, ΠΊΡ‚ΠΎ Π·Π½Π°ΠΊΠΎΠΌ с JavaScript хотя Π±Ρ‹ Π½Π° срСднСм ΡƒΡ€ΠΎΠ²Π½Π΅.

1. Π˜Π·ΠΎΠ»ΡΡ†ΠΈΡ ΠΊΠΎΠ΄Π°

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ΠΎΠ²ΡƒΡŽ Π±Π°Π·Ρƒ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² чистотС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ΄ Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π»Π΅Π³ΠΊΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ, рСкомСндуСтся Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠ΄Π° Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ, ΠΎΡΠ½ΠΎΠ²Ρ‹Π²Π°ΡΡΡŒ Π½Π° ΠΈΡ… ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ. Π’ качСствС Ρ‚Π°ΠΊΠΈΡ… Π±Π»ΠΎΠΊΠΎΠ² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π²Ρ‹ΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π― ΡΡ‡ΠΈΡ‚Π°ΡŽ эту Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΡŽ самой Π²Π°ΠΆΠ½ΠΎΠΉ ΠΈΠ· Ρ‚Π΅Ρ…, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠ³Ρƒ Π΄Π°Ρ‚ΡŒ. Если Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ сразу ΠΆΠ΅ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ эта функция Π±Ρ‹Π»Π° Π±Ρ‹ Π½Π°Ρ†Π΅Π»Π΅Π½Π° Π½Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ. Ѐункция Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ рассчитана Π½Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π·Π°Π΄Π°Ρ‡.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, слСдуСт ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚ΡŒΡΡ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π·ΠΎΠ²Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½Π΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΈ Π±Ρ‹ ΠΊ ΠΏΠΎΠ±ΠΎΡ‡Π½Ρ‹ΠΌ эффСктам. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ функция Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΌΠ΅Π½ΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅, Ρ‡Ρ‚ΠΎ объявлСно Π·Π° Π΅Ρ‘ ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ. Π”Π°Π½Π½Ρ‹Π΅ Π² Π½Π΅Ρ‘ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‚ посрСдством ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Π•ΠΉ Π½Π΅ слСдуСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½ΠΈ с Ρ‡Π΅ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ. Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Ρ‡Ρ‚ΠΎ-Π»ΠΈΠ±ΠΎ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½ΡƒΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова return.

2. Π Π°Π·Π±ΠΈΠ²ΠΊΠ° ΠΊΠΎΠ΄Π° Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈ

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΏΠΎΡ…ΠΎΠΆΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΈΠ»ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ ΠΏΠΎΡ…ΠΎΠΆΠΈΠ΅ дСйствия, ΠΌΠΎΠΆΠ½ΠΎ ΡΠ³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅ (ΠΈΠ»ΠΈ, Ссли Ρ…ΠΎΡ‚ΠΈΡ‚Π΅, Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ классС). ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Π² вашСм ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ вычислСния. Π’ Ρ‚Π°ΠΊΠΎΠΉ ситуации Ρ€Π°Π·Π½Ρ‹Π΅ этапы ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… вычислСний ΠΈΠΌΠ΅Π΅Ρ‚ смысл Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ (ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΎΠ²), Π²Ρ‹Π·ΠΎΠ²Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ Π² Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ. Однако всС эти Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ Π² ΠΎΠ΄Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ (Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ β€” Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅). Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ модуля

calculation.js, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:

function add(a, b) {
 Β Β Β return a + b Β Β 
}
function subtract(a, b) {
 Β Β Β return a - b Β Β 
}
module. exports = {
 Β Β Β add,
 Β Β Β subtract
}

А Π²ΠΎΡ‚ ΠΊΠ°ΠΊ этим ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ (Π½Π°Π·ΠΎΠ²Ρ‘ΠΌ Π΅Π³ΠΎ index.js):

const { add, subtract } = require('./calculations')
console.log(subtract(5, add(3, 2))

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π΄Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ. Для экспорта самых Π²Π°ΠΆΠ½Ρ‹Ρ… сущностСй, ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Ρ… Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ возмоТности экспорта ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Для второстСпСнных сущностСй ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ экспорт.

3. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ нСсколько ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ вмСсто ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ

ΠŸΡ€ΠΈ объявлСнии Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ слСдуСт ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚ΡŒΡΡ ΠΊ использованию Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Π° Π½Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ. Π’ΠΎΡ‚ ΠΏΠ°Ρ€Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ²:

// Π₯ΠΎΡ€ΠΎΡˆΠΎ
function displayUser(firstName, lastName, age) {
 Β Β Β console.log(`This is ${firstName} ${lastName}. She is ${age} years old.`)
}
// ΠŸΠ»ΠΎΡ…ΠΎ
function displayUser(user) {
 Β Β Β console. log(`This is ${user.firstName} ${user.lastName}. She is ${user.age} years old.`)
}

НаличиС Ρƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² позволяСт, взглянув Π½Π° ΠΏΠ΅Ρ€Π²ΡƒΡŽ строчку Π΅Ρ‘ объявлСния, сразу ΠΆΠ΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π΅ΠΉ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ. ИмСнно Π² этом ΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ я даю эту Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΡŽ.

НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ Π½ΡƒΠΆΠ½ΠΎ ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚ΡŒΡΡ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ каТдая ΠΈΠ· Π½ΠΈΡ… Ρ€Π΅ΡˆΠ°Π»Π° лишь ΠΎΠ΄Π½Ρƒ Π·Π°Π΄Π°Ρ‡Ρƒ, Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ достаточно большим. Если функция ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ СдинствСнный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ, Ρ‚ΠΎ для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½Π° ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ вСсь Π΅Ρ‘ ΠΊΠΎΠ΄, ΠΏΠΎΡ‚Ρ€Π°Ρ‚ΠΈΠ² Π½Π° это Π½Π΅ΠΌΠ°Π»ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ. Иногда ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с функциями Π³ΠΎΡ€Π°Π·Π΄ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ СдинствСнный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ. Но Ссли ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, учитывая Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅ Π±ΡƒΠ΄ΡƒΡ‰Π΅Π΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ прилоТСния, Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСсколько ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

Надо ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ сущСствуСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹ΠΉ ΠΏΡ€Π΅Π΄Π΅Π», послС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ использованиС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² тСряСт смысл. Π’ ΠΌΠΎΡ‘ΠΌ случаС это Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅-ΠΏΡΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Если Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½ΡƒΠΆΠ½ΠΎ Ρ‚Π°ΠΊ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚ΠΎ программисту стоит ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎΠ± использовании ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ.

Основная ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΡ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π΅ΠΉ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠΌ порядкС. Если Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ, Ρ‚ΠΎ вмСсто Π½ΠΈΡ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π΅Ρ‡Ρ‚ΠΎ Π²Ρ€ΠΎΠ΄Π΅ undefined ΠΈΠ»ΠΈ null. ΠŸΡ€ΠΈ использовании ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ порядок ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ значСния Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚. ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ ΠΈ Π±Π΅Π· установки Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π² undefined.

4. ДСструктурированиС

ДСструктурированиС β€” ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΉ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ появился Π² ES6. Он позволяСт ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ Π·Π°Π΄Π°Π½Π½Ρ‹Π΅ поля ΠΈΠ· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ Ρ‚ΡƒΡ‚ ΠΆΠ΅ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. Им ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ ΠΈ модулями:

// Π Π°Π±ΠΎΡ‚Π° с ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ
const { add, subtract } = require('. /calculations')

Π’ частности, ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с модулями ΠΈΠΌΠ΅Π΅Ρ‚ смысл ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Π½Π΅ΠΊΠΈΠΉ Ρ„Π°ΠΉΠ» Π½Π΅ вСсь ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Π° лишь Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, давая ΠΈΠΌ понятныС ΠΈΠΌΠ΅Π½Π°. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС придётся ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ функциям с использованиСм ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΡΠΈΠΌΠ²ΠΎΠ»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ.

Аналогичный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ ΠΈ ΠΊ Ρ‚Π΅ΠΌ случаям, ΠΊΠΎΠ³Π΄Π° Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ СдинствСнный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Π­Ρ‚ΠΎ позволяСт, взглянув Π½Π° ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Ρ‚ΡƒΡ‚ ΠΆΠ΅ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½Π° ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π² Π²ΠΈΠ΄Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ:

function logCountry({name, code, language, currency, population, continent}) {
 Β Β Β let msg = `The official language of ${name} `
 Β Β Β if(code) msg += `(${code}) `
 Β Β Β msg += `is ${language}. ${population} inhabitants pay in ${currency}.`
 Β Β Β if(contintent) msg += ` The country is located in ${continent}`
}
logCountry({
 Β Β Β name: 'Germany',
 Β Β Β code: 'DE',
 Β Β Β language 'german',
 Β Β Β currency: 'Euro',
 Β Β Β population: '82 Million',
})
logCountry({
 Β Β Β name: 'China',
 Β Β Β language 'mandarin',
 Β Β Β currency: 'Renminbi',
 Β Β Β population: '1.
4 Billion', Β Β Β continent: 'Asia', })

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, нСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ функция ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ СдинствСнный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ, Π΅Π³ΠΎ дСструктурированиС позволяСт ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² Π½Π΅Π³ΠΎ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ совСт Π±ΡƒΠ΄Π΅Ρ‚ посвящён Ρ‚ΠΎΠΌΡƒ, ΠΊΠ°ΠΊ Π΅Ρ‰Ρ‘ Ρ‚ΠΎΡ‡Π½Π΅Π΅ ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½Π° ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚.

ΠšΡΡ‚Π°Ρ‚ΠΈ, дСструктурированиС ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°ΠΌΠΈ React.

5. Π—Π°Π΄Π°Π²Π°ΠΉΡ‚Π΅ стандартныС значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, значСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΈΠΌΠ΅Π΅Ρ‚ смысл ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΈ дСструктурировании ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ, ΠΈ Π² Ρ‚Π΅Ρ… случаях, ΠΊΠΎΠ³Π΄Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ списки ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ². Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, это Π΄Π°Ρ‘Ρ‚ программисту ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ…, это позволяСт ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ, Π° ΠΊΠ°ΠΊΠΈΠ΅ β€” Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΠΌ объявлСниС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° стандартными значСниями ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ²:

function logCountry({
 Β Β Β name = 'United States', 
 Β Β Β code, 
 Β Β Β language = 'English', 
 Β Β Β currency = 'USD', 
 Β Β Β population = '327 Million', 
 Β Β Β continent,
}) {
 Β Β Β let msg = `The official language of ${name} `
 Β Β Β if(code) msg += `(${code}) `
 Β Β Β msg += `is ${language}.  ${population} inhabitants pay in ${currency}.`
 Β Β Β if(contintent) msg += ` The country is located in ${continent}`
}
logCountry({
 Β Β Β name: 'Germany',
 Β Β Β code: 'DE',
 Β Β Β language 'german',
 Β Β Β currency: 'Euro',
 Β Β Β population: '82 Million',
})
logCountry({
 Β Β Β name: 'China',
 Β Β Β language 'mandarin',
 Β Β Β currency: 'Renminbi',
 Β Β Β population: '1.4 Billion',
 Β Β Β continent: 'Asia',
})

ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях, Ссли ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π΅ΠΉ Π½Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Π»ΠΈ Π½Π΅ΠΊΠΈΠΉ Π²Π°ΠΆΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π΄Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ, Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ стандартноС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этого ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Но часто, ΠΎΠ΄Π½Π°ΠΊΠΎ, описанный здСсь ΠΏΡ€ΠΈΡ‘ΠΌ оказываСтся ΠΎΡ‡Π΅Π½ΡŒ кстати.

6. НС ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°ΠΉΡ‚Π΅ функциям Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅

ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π°Ρ рСкомСндация Π²Π΅Π΄Ρ‘Ρ‚ нас ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ интСрСсному Π²Ρ‹Π²ΠΎΠ΄Ρƒ. Он Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ функциям Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹. Если ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ этому ΠΏΡ€Π°Π²ΠΈΠ»Ρƒ, Ρ‚ΠΎ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ врСмя. Но Π² долгосрочной пСрспСктивС Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹, ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‰Π΅ΠΉΡΡ Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ. К Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅, нСвСроятно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π½Π°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ мСстС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

7. ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ числа строк Π² Ρ„Π°ΠΉΠ»Π°Ρ… ΠΈ максимального уровня влоТСнности ΠΊΠΎΠ΄Π°

МнС доводилось Π²ΠΈΠ΄Π΅Ρ‚ΡŒ большиС Ρ„Π°ΠΉΠ»Ρ‹ с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ. ΠžΡ‡Π΅Π½ΡŒ большиС. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π±Ρ‹Π»ΠΎ Π±ΠΎΠ»Π΅Π΅ 3000 строк. Π’ Ρ‚Π°ΠΊΠΈΡ… Ρ„Π°ΠΉΠ»Π°Ρ… ΠΎΡ‡Π΅Π½ΡŒ слоТно ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ рСкомСндуСтся ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ„Π°ΠΉΠ»ΠΎΠ², измСряСмый Π² строках ΠΊΠΎΠ΄Π°. Π― ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΡΡ‚Ρ€Π΅ΠΌΠ»ΡŽΡΡŒ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΌΠΎΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π» Π±Ρ‹ 100 строк. Иногда, ΠΊΠΎΠ³Π΄Π° слоТно Π±Ρ‹Π²Π°Π΅Ρ‚ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π½Π΅ΠΊΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ Π½Π° нСбольшиС Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹, Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΌΠΎΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² Π΄ΠΎΡΡ‚ΠΈΠ³Π°ΡŽΡ‚ 200-300 строк. И ΠΎΡ‡Π΅Π½ΡŒ Ρ€Π΅Π΄ΠΊΠΎ ΠΈΡ… Ρ€Π°Π·ΠΌΠ΅Ρ€ Π΄ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎ 400 строк. Π€Π°ΠΉΠ»Ρ‹, Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°ΡŽΡ‚ этот ΠΏΡ€Π΅Π΄Π΅Π», тяТСло Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ.

Π’ Ρ…ΠΎΠ΄Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ своими ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ смСло создавайтС Π½ΠΎΠ²Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΈ ΠΏΠ°ΠΏΠΊΠΈ. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Π° Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ лСс, состоящий ΠΈΠ· Π΄Π΅Ρ€Π΅Π²ΡŒΠ΅Π² (Π³Ρ€ΡƒΠΏΠΏ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ) ΠΈ Π²Π΅Ρ‚Π²Π΅ΠΉ (Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ). Π‘Ρ‚Ρ€Π΅ΠΌΠΈΡ‚Π΅ΡΡŒ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ваши ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π½Π΅ Π±Ρ‹Π»ΠΈ Π±Ρ‹ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° Π³ΠΎΡ€Π½Ρ‹Π΅ массивы.

Если ΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎ внСшнСм Π²ΠΈΠ΄Π΅ самих Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΊΠΎΠ΄ΠΎΠΌ, Ρ‚ΠΎ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° ΠΌΠ΅ΡΡ‚Π½ΠΎΡΡ‚ΡŒ с нСвысокими Ρ…ΠΎΠ»ΠΌΠ°ΠΌΠΈ. Π Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ слСдуСт ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ влоТСнности ΠΊΠΎΠ΄Π°. Π‘Ρ‚ΠΎΠΈΡ‚ ΡΡ‚Ρ€Π΅ΠΌΠΈΡ‚ΡŒΡΡ ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π»Π° Π±Ρ‹ Ρ‡Π΅Ρ‚Ρ‹Ρ€Ρ‘Ρ… ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒ эти Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ подходящих ΠΏΡ€Π°Π²ΠΈΠ» Π»ΠΈΠ½Ρ‚Π΅Ρ€Π° ESLint.

8. ΠŸΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ инструмСнтами для автоматичСского форматирования ΠΊΠΎΠ΄Π°

ΠŸΡ€ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ Π½Π°Π΄ JavaScript-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°ΠΌΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‡Ρ‘Ρ‚ΠΊΠΎΠ΅ руководство ΠΏΠΎ ΡΡ‚ΠΈΠ»ΡŽ ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ ΠΊΠΎΠ΄Π°. ΠΠ²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ESLint. Π­Ρ‚ΠΎΡ‚ Π»ΠΈΠ½Ρ‚Π΅Ρ€ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ ΠΎΠ³Ρ€ΠΎΠΌΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΏΡ€Π°Π²ΠΈΠ», ΠΏΠΎΠ΄Π΄Π°ΡŽΡ‰ΠΈΡ…ΡΡ настройкС. БущСствуСт ΠΊΠΎΠΌΠ°Π½Π΄Π° eslint --fix, которая ΡƒΠΌΠ΅Π΅Ρ‚ ΠΈΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ошибки.

Π―, ΠΎΠ΄Π½Π°ΠΊΠΎ, Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ форматирования ΠΊΠΎΠ΄Π° Π½Π΅ ESLint, Π° Prettier. ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ Π·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠ΄Π°. Π•ΠΌΡƒ Π½ΡƒΠΆΠ½ΠΎ лишь ΠΏΠΈΡΠ°Ρ‚ΡŒ качСствСнныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’Π΅ΡΡŒ ΠΊΠΎΠ΄, автоматичСски ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡ€Π° ΠΏΡ€Π°Π²ΠΈΠ», Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±Ρ€Π°Π·Π½ΠΎ.

9. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΌΠ°Π½Π½Ρ‹Π΅ ΠΈΠΌΠ΅Π½Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

Имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, Π² ΠΈΠ΄Π΅Π°Π»Π΅, Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡ‚Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π΅Ρ‘ содСрТимоС. Π’ΠΎΡ‚ нСсколько Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ ΠΏΠΎ ΠΏΠΎΠ΄Π±ΠΎΡ€Ρƒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΈΠΌΡ‘Π½ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

▍Ѐункции

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ дСйствия. Π›ΡŽΠ΄ΠΈ, ΠΊΠΎΠ³Π΄Π° говорят ΠΎ дСйствиях, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π³Π»Π°Π³ΠΎΠ»Ρ‹. НапримСр β€” convert (ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ) ΠΈΠ»ΠΈ display (ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ). ИмСна Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ рСкомСндуСтся Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Π»ΠΈΡΡŒ с Π³Π»Π°Π³ΠΎΠ»Π°. НапримСр β€” convertCurrency ΠΈΠ»ΠΈ displayUser.

β–ΠœΠ°ΡΡΠΈΠ²Ρ‹

ΠœΠ°ΡΡΠΈΠ²Ρ‹ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ содСрТат Π² сСбС Π½Π°Π±ΠΎΡ€Ρ‹ ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΊ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, хранящСй массив, ΠΈΠΌΠ΅Π΅Ρ‚ смысл Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π±ΡƒΠΊΠ²Ρƒ s. НапримСр:

const students = ['Eddie', 'Julia', 'Nathan', 'Theresa']

▍ЛогичСскиС значСния

ИмСна логичСских ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈΠΌΠ΅Π΅Ρ‚ смысл Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ с is ΠΈΠ»ΠΈ has. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ±Π»ΠΈΠΆΠ°Π΅Ρ‚ ΠΈΡ… ΠΊ конструкциям, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π² ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠΌ языкС. НапримСр, Π²ΠΎΡ‚ вопрос: Β«Is that person a teacher?Β». ΠžΡ‚Π²Π΅Ρ‚ΠΎΠΌ Π½Π° Π½Π΅Π³ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ Β«YesΒ» ΠΈΠ»ΠΈ Β«NoΒ». Аналогично ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ ΠΈ подбирая ΠΈΠΌΠ΅Π½Π° для логичСских ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…:

const isTeacher = true // ΠΈΠ»ΠΈ false

β–ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… стандартным ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ массивов

Π’ΠΎΡ‚ нСсколько стандартных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² массивов JavaScript: forEach, map, reduce, filter. Они ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ с массивами Π½Π΅ΠΊΠΈΠ΅ дСйствия. Им ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ массивами. Π― Π²ΠΈΠ΄Π΅Π», ΠΊΠ°ΠΊ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ программисты просто ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ Ρ‚Π°ΠΊΠΈΠΌ функциям ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ с ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ el ΠΈΠ»ΠΈ element. Π₯отя Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ избавляСт программиста ΠΎΡ‚ Ρ€Π°Π·ΠΌΡ‹ΡˆΠ»Π΅Π½ΠΈΠΉ ΠΎΠ± ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… Π»ΡƒΡ‡ΡˆΠ΅ с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² Π½ΠΈΡ… ΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ. НапримСр:

const cities = ['Berlin', 'San Francisco', 'Tel Aviv', 'Seoul']
cities.forEach(function(city) {
...
})

β–Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹

Часто Π±Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ программисту Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ Π½Π΅ΠΊΠΈΡ… Π½Π°Π±ΠΎΡ€ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Если ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ, Π½ΠΈΡ‡Π΅Π³ΠΎ особСнного Π΄Π΅Π»Π°Ρ‚ΡŒ с Π½ΠΈΠΌΠΈ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ. Π―, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с MongoDB, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ, ΠΏΠ΅Ρ€Π΅Π΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΎΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Ρ„Ρ€ΠΎΠ½Ρ‚Π΅Π½Π΄-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽ _id Π² id. ΠŸΡ€ΠΈ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈΠ· ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² рСкомСндуСтся Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… ΠΈΠΌΠ΅Π½Π°, ставя ΠΏΠ΅Ρ€Π΅Π΄ id Ρ‚ΠΈΠΏ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. НапримСр:

const studentId = student.id
// ΠΈΠ»ΠΈ
const { id: studentId } = student // дСструктурированиС с ΠΏΠ΅Ρ€Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΈΠ· этого ΠΏΡ€Π°Π²ΠΈΠ»Π° являСтся Ρ€Π°Π±ΠΎΡ‚Π° со ссылками MongoDB Π² модСлях. Π’ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… случаях поля рСкомСндуСтся Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π² соотвСтствии с модСлями, ссылки Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ. Π­Ρ‚ΠΎ, ΠΏΡ€ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅ΡΡ‚ΡŒ ссылки Π² полях, ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ чистоту ΠΈ Π΅Π΄ΠΈΠ½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ ΠΊΠΎΠ΄Π°:

const StudentSchema = new Schema({
 Β Β Β teacher: {
 Β Β Β Β Β Β Β type: Schema.Types.ObjectId,
 Β Β Β Β Β Β Β ref: 'Teacher',
 Β Β Β Β Β Β Β required: true,
 Β Β Β },
 Β Β Β name: String,
 Β Β Β ...
})

10. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚Π°ΠΌ, Π³Π΄Π΅ это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ async/await

ИспользованиС коллбэков ΡƒΡ…ΡƒΠ΄ΡˆΠ°Π΅Ρ‚ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°. ОсобСнно это касаСтся Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… коллбэков. ΠŸΡ€ΠΎΠΌΠΈΡΡ‹ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ‹ΠΏΡ€Π°Π²ΠΈΠ»ΠΈ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, Π½ΠΎ я полагаю, Ρ‡Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ всСго читаСтся ΠΊΠΎΠ΄, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ конструкция async/await. Π‘ Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ нСслоТно Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ Π΄Π°ΠΆΠ΅ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠ°ΠΌ ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ, ΠΏΠ΅Ρ€Π΅ΡˆΠ΅Π΄ΡˆΠΈΠΌ Π½Π° JavaScript с Π΄Ρ€ΡƒΠ³ΠΈΡ… языков. Π‘Π°ΠΌΠΎΠ΅ Π³Π»Π°Π²Π½ΠΎΠ΅ здСсь β€” ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ, Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ Π² основС async/await. НС стоит ΠΏΠΎΠ²ΡΡŽΠ΄Ρƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ·-Π·Π° Π΅Ρ‘ Π½ΠΎΠ²ΠΈΠ·Π½Ρ‹.

11.

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ

Π’ рСкомСндациях 1 ΠΈ 2 Π±Ρ‹Π»Π° продСмонстрирована Π²Π°ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ‹Π±ΠΎΡ€Π° мСста хранСния ΠΊΠΎΠ΄Π° для обСспСчСния Π΅Π³ΠΎ поддСрТиваСмости. АналогичныС ΠΈΠ΄Π΅ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹ ΠΈ ΠΊ порядку ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. А ΠΈΠΌΠ΅Π½Π½ΠΎ, Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ порядок ΠΈΠΌΠΏΠΎΡ€Ρ‚Π° ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ понятнСС. Π―, импортируя ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ простой схСмы:

// ΠŸΠ°ΠΊΠ΅Ρ‚Ρ‹ сторонних Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²
import React from 'react'
import styled from 'styled-components'
// Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°
import Store from '~/Store
// ΠšΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ΅ использованиС
import Button from '~/components/Button'
// Π’ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
import { add, subtract } from '~/utils/calculate'
// Π‘ΡƒΠ±ΠΌΠΎΠ΄ΡƒΠ»ΠΈ
import Intro from './Intro'
import Selector from './Selector'

Π”Π°Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ основан Π½Π° React. Π­Ρ‚Ρƒ ΠΆΠ΅ идСю нСслоТно Π±ΡƒΠ΄Π΅Ρ‚ пСрСнСсти ΠΈ Π² любоС Π΄Ρ€ΡƒΠ³ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

12. Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ использования console.log

Команда console. log прСдставляСт собой простой, быстрый ΠΈ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ инструмСнт для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π‘ΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ срСдства Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π°, Π½ΠΎ я Π΄ΡƒΠΌΠ°ΡŽ, Ρ‡Ρ‚ΠΎ console.log всё Π΅Ρ‰Ρ‘ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ практичСски всС программисты. Если, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ console.log для ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ, Π½Π΅ ΡƒΠ±ΠΈΡ€Π°Ρ‚ΡŒ воврСмя Π²Ρ‹Π·ΠΎΠ²Ρ‹ этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΡΡ‚Π°Π²ΡˆΠΈΠ΅ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ, консоль скоро ΠΏΡ€ΠΈΠ΄Ρ‘Ρ‚ Π² ΠΏΠΎΠ»Π½Ρ‹ΠΉ бСспорядок. ΠŸΡ€ΠΈ этом Π½Π°Π΄ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ логирования ΠΈΠΌΠ΅Π΅Ρ‚ смысл ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π΄Π°ΠΆΠ΅ Π² ΠΊΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ², ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅. НапримСр β€” ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, выводящиС сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… ΠΈ прСдупрСТдСния.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ для ΠΎΡ‚Π»Π°Π΄ΠΎΡ‡Π½Ρ‹Ρ… Ρ†Π΅Π»Π΅ΠΉ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ console.log, Π° Π² Ρ‚Π΅Ρ… случаях, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ логирования планируСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°Ρ…, ΠΈΠΌΠ΅Π΅Ρ‚ смысл ΠΏΡ€ΠΈΠ±Π΅Π³Π½ΡƒΡ‚ΡŒ ΠΊ спСциализированным Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌ. Π‘Ρ€Π΅Π΄ΠΈ Π½ΠΈΡ… β€” loglevel ΠΈ winston. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, для Π±ΠΎΡ€ΡŒΠ±Ρ‹ с Π½Π΅Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ логирования ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ESLint. Π­Ρ‚ΠΎ позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΉ поиск ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄.

Π˜Ρ‚ΠΎΠ³ΠΈ

Автор этого ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚, Ρ‡Ρ‚ΠΎ всё Ρ‚ΠΎ, ΠΎ Ρ‡Ρ‘ΠΌ ΠΎΠ½ Ρ‚ΡƒΡ‚ рассказал, Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π΅ΠΌΡƒ Π² Π΄Π΅Π»Π΅ поддСрТания чистоты ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΠΈ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹ Π΅Π³ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ². НадССмся, эти совСты пригодятся ΠΈ Π²Π°ΠΌ.

Π£Π²Π°ΠΆΠ°Π΅ΠΌΡ‹Π΅ Ρ‡ΠΈΡ‚Π°Ρ‚Π΅Π»ΠΈ! Π§Ρ‚ΠΎ Π±Ρ‹ Π²Ρ‹ ΠΌΠΎΠ³Π»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹ΠΌ здСсь 12 совСтам ΠΏΠΎ написанию чистого ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠ³ΠΎ JS-ΠΊΠΎΠ΄Π°?

ДокумСнтация ΠΏΠΎ инструмСнту Code.org

ДокумСнтация ΠΏΠΎ инструмСнту Code.org
    • Π˜Π³Ρ€ΠΎΠ²Π°Ρ лаборатория
      • Π€ΠΈΠ³ΡƒΡ€Ρ‹ для рисования
      • Π€ΠΎΡ€ΠΌΡ‹ ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹
      • Π‘ΠΏΡ€Π°ΠΉΡ‚Ρ‹
        • Бвойства спрайта
        • ВзаимодСйствиС спрайтов
        • ΠžΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ столкновСния
        • Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ
      • Π¨Π°Π±Π»ΠΎΠ½ счСтчика
      • Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΈ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½ счСтчика
      • ΠŸΠ΅Ρ‚Π»Ρ рисования
      • ΠžΡ‚Π»Π°Π΄ΠΊΠ° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Watchers
      • Π’ΠΊΠ»Π°Π΄ΠΊΠ° «ΠΠ½ΠΈΠΌΠ°Ρ†ΠΈΡ»
        • Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ
        • ΠœΠ½ΠΎΠ³ΠΎΠΊΠ°Π΄Ρ€ΠΎΠ²Π°Ρ анимация
    • Лаборатория ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
      • ΠžΡ‚Π²Π΅Ρ‚ Π½Π° Π²Π²ΠΎΠ΄ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ
      • ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ getProperty
      • ΠœΠ½ΠΎΠ³ΠΎΡΠΊΡ€Π°Π½Π½Ρ‹Π΅ прилоТСния
      • Π‘ΠΌΠ΅Π½Π° экранов
      • ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ экранов с ΠΊΠΎΠ΄ΠΎΠΌ
      • Π¨Π°Π±Π»ΠΎΠ½ счСтчика
      • Π Π΅ΠΆΠΈΠΌ проСктирования
        • Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Ρ‹ Ρ€Π΅ΠΆΠΈΠΌΠ° проСктирования
        • Π˜ΠΌΠΏΠΎΡ€Ρ‚ экранов
      • ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ if
      • Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ App Lab
    • Набор инструмСнтов для изготовлСния
      • Бпортивная ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΊΠ°
      • Π¦Π²Π΅Ρ‚Π½Ρ‹Π΅ ΠΎΠ³Π½ΠΈ
      • ВоспроизвСдСниС Π½ΠΎΡ‚
      • АналоговыС Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠΈ
      • Π—Π°ΠΌΠ΅Π½Π° ΡˆΠΊΠ°Π»Ρ‹ Π΄Π°Ρ‚Ρ‡ΠΈΠΊΠ°
      • ЀизичСский Π²Π²ΠΎΠ΄
      • ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΠΈ
      • Π‘Ρ…Π΅ΠΌΡ‹ ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ
      • Π¦Π΅ΠΏΠΈ ΠΈ свСтодиоды
      • АксСлСромСтр
      • Бобытия аксСлСромСтра
      • Бобытия Π‘ΠΎΠ²Π΅Ρ‚Π°
      • Бобытия Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
    • JavaScript
      • Π‘ΡƒΠ»Π΅Π²Ρ‹ значСния ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ сравнСния
      • ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ if
      • ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ if-else
      • Для Ρ†ΠΈΠΊΠ»ΠΎΠ²
      • ВрСмСнная пСтля
      • Π¦ΠΈΠΊΠ» ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ
      • ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅
      • ИмСнованиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…
      • ΠœΠ°ΡΡΠΈΠ²Ρ‹
      • ИзмСнСниС массивов
      • Π‘Π»ΡƒΡ‡Π°ΠΉΠ½Ρ‹Π΅ числа
      • Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ
      • Π£Π·ΠΎΡ€Ρ‹
    • HTML
      • Π’Π΅Π³ΠΈ HTML
      • Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΈ ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„Ρ‹
      • Π˜Π·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡ Π² HTML
      • Бписки
      • ГипСрссылки
      • Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ HTML
    • Π£Π‘Π‘
      • Π’Π°Π±Π»ΠΈΡ†Ρ‹ стилСй
      • Бвойства тСкста
      • Π‘Ρ‚Π°ΠΉΠ»ΠΈΠ½Π³ ΠΊΡƒΠ·ΠΎΠ²Π°
      • Бвойства ΠΌΠ°ΠΊΠ΅Ρ‚Π°
      • ΠšΠ»Π°ΡΡΡ‹
    • Π¨Π°Π±Π»ΠΎΠ½Ρ‹
      • Π¨Π°Π±Π»ΠΎΠ½Ρ‹ счСтчика с событиСм
      • ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Π°Ρ с шаблоном ΠΊΠΎΠ½ΠΊΠ°Ρ‚Π΅Π½Π°Ρ†ΠΈΠΈ строк
      • Π¨Π°Π±Π»ΠΎΠ½ updateScreen()
      • ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… условий с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ If-Else-If
      • Π¨Π°Π±Π»ΠΎΠ½ доступа ΠΊ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΌΡƒ списку
      • Π¨Π°Π±Π»ΠΎΠ½ ΠΏΡ€ΠΎΠΊΡ€ΡƒΡ‚ΠΊΠΈ списка
      • Когда Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ
      • ΠžΠ±Π»Π°ΡΡ‚ΡŒ дСйствия ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ: Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ
      • Π¨Π°Π±Π»ΠΎΠ½ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π° списка
      • Π¨Π°Π±Π»ΠΎΠ½ сокращСния списка
    • ΠŸΡ€ΠΎΡ‡Π΅Π΅
      • Поиск Creative Commons
      • Какой Ρ‚ΠΈΠΏ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹?
    • Лаборатория искусствСнного ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π°
      • Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΈΡŽ искусствСнного ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π°
      • ИспользованиС Π΄Π°Π½Π½Ρ‹Ρ… с ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠ°ΠΌΠΈ
      • ИспользованиС Π΄Π°Π½Π½Ρ‹Ρ… с числовыми функциями
      • Π’Ρ‹Π±ΠΎΡ€ ΠΌΠ΅Ρ‚ΠΊΠΈ
      • Π’Ρ‹Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ
      • Π’ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ Π² Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΈΠΈ искусствСнного ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π°
      • Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ опроса
      • Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° CSV-Ρ„Π°ΠΉΠ»ΠΎΠ²
      • Π˜ΠΌΠΏΠΎΡ€Ρ‚ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² App Lab
      • ΠšΠ°Ρ€Ρ‚Ρ‹ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π² Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€ΠΈΠΈ искусствСнного ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π°

JavaScript β€” это язык программирования, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π²ΠΎ всСм Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² качСствС основного языка программирования Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… инструмСнтах ΠΈ ​​учСбных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… Code. org, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ App Lab, Game Lab ΠΈ Maker Toolkit.

Нашли ΠΎΡˆΠΈΠ±ΠΊΡƒ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ? Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚Π΅ Π½Π°ΠΌ ΠΎΠ± этом ΠΏΠΎ адрСсу [email protected]

.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΊΠΎΠ΄Π° JavaScript | Π Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° ΠΊΠΎΠ΄Π΅ Π‘Π½ΠΈΠΊ

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ своСго ΠΊΠΎΠ΄Π° JavaScript ΠΏΠ΅Ρ€Π΅Π΄ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ PR ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΠΉΡ‚Π΅ оповСщСния ΠΎ критичСских ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ нашСго бСсплатного ΠΎΠ½Π»Π°ΠΉΠ½-инструмСнта ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠΎΠ΄Π° JavaScript Π½Π° Π±Π°Π·Π΅ Snyk Code.

ΠŸΠΎΠ΄ΠΏΠΈΡˆΠΈΡ‚Π΅ΡΡŒ Π½Π° Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Π΅ Ρ‡Π΅ΠΊΠΈ, крСдитная ΠΊΠ°Ρ€Ρ‚Π° Π½Π΅ трСбуСтся.

Π—Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ Π² GitHubΠ—Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ Π² Google

Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±Π΅ΡΠΏΠ»Π°Ρ‚Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠΎΠ΄Π°

Код

Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΈ Π²ΡΡ‚Π°Π²ΡŒΡ‚Π΅ свой ΠΊΠΎΠ΄ JavaScript Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€.

Π―Π·Ρ‹ΠΊ

Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ язык ΠΈΠ· Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ списка.

Π§Π΅ΠΊ

НаТмитС ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ .

Π£Π»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ JavaScript.

ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡ΡŒΡ‚Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° прямо ΠΈΠ· вашСй IDE

Π­Ρ‚Π° бСсплатная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ критичСскиС уязвимости ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ бСзопасности ΠΎΠ΄Π½ΠΈΠΌ Ρ‰Π΅Π»Ρ‡ΠΊΠΎΠΌ ΠΌΡ‹ΡˆΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ вашСго прилоТСния Π½Π° Π½ΠΎΠ²Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ, ΠΌΡ‹ Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ бСсплатно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Snyk Code прямо ΠΈΠ· вашСй IDE.

Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° JavaScript Π½Π° Π±Π°Π·Π΅ Snyk Code

Π­Ρ‚Π° бСсплатная Π²Π΅Π±-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠΎΠ΄Π° JavaScript Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° Π±Π°Π·Π΅ Snyk Code. Π—Π°Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ΡΡŒ сСйчас, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊΠΎ всСм функциям, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ оповСщСния ΠΎΠ± уязвимостях, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ сканирования Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ дСйствСнныС Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΈΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡŽ Π² вашСй срСдС IDE.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ JavaScript-ΠΊΠΎΠ΄Π° с участиСм Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ° Π² Ρ†ΠΈΠΊΠ»Π΅

Snyk Code β€” это разработанная экспСртами ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠΎΠ΄Π° JavaScript Π½Π° Π±Π°Π·Π΅ искусствСнного ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π°, которая Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ваш ΠΊΠΎΠ΄ Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ, прСдоставляя дСйствСнныС совСты нСпосрСдствСнно ΠΈΠ· вашСй IDE, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ быстро ΡƒΡΡ‚Ρ€Π°Π½ΠΈΡ‚ΡŒ уязвимости.

Π’ Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ

Π‘ΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ исправлСниС исходного ΠΊΠΎΠ΄Π° Π·Π° считанныС ΠΌΠΈΠ½ΡƒΡ‚Ρ‹.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎΠ΅ дСйствиС

Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ уязвимостСй с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ исправлСний, ΡƒΠ΄ΠΎΠ±Π½Ρ‹Ρ… для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ Π² IDE

Π Π°Π½Π½ΠΈΠΉ поиск уязвимостСй для экономии Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ Π΄Π΅Π½Π΅Π³.

ЭкосистСмы

Π˜Π½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ΡΡ Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ процСсс.

Π‘ΠΎΠ»ΡŒΡˆΠ΅, Ρ‡Π΅ΠΌ синтаксичСскиС ошибки

ВсСсторонний сСмантичСский Π°Π½Π°Π»ΠΈΠ·.

ИИ на базС людСй

Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ машинноС ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ руководством экспСртов ΠΏΠΎ бСзопасности.

ВСстированиС Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ процСссС

АвтоматичСски ΡΠΊΠ°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ PR ΠΈ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ.

Шлюз бСзопасности CI/CD

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ сканирования Π² процСсс сборки.

Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы

Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ JavaScript?

БущСствуСт нСсколько ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠΎΠ΄Π° JavaScript. НСкоторыС IDE ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ΠΊΠΎΠ΄Π° JavaScript, Ρ‡Ρ‚ΠΎ позволяСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π»Π΅Π³ΠΊΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ ошибок JavaScript. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π²Π°Π»ΠΈΠ΄Π°Ρ‚ΠΎΡ€ ΠΈΠ»ΠΈ Π»ΠΈΠ½Ρ‚Π΅Ρ€ JavaScript, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ESLint, ΠΌΠΎΠΆΠ΅Ρ‚ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ ΠΈ ΡΡ€Π°Π²Π½ΠΈΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ с Π½Π°Π±ΠΎΡ€ΠΎΠΌ ΠΏΡ€Π°Π²ΠΈΠ». Оба этих ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ срСдства ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ синтаксиса JavaScript, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΊΠ°Π½ΠΈΡ€ΡƒΡŽΡ‚ синтаксис, Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠ²Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ кодирования. Однако Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π½Π΅ выявляСт уязвимости систСмы бСзопасности ΠΈ Π½Π΅ прСдоставляСт ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ для исправлСния ошибок. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хотят быстро ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ ошибки, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒΡΡ Π½Π° срСдство ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠΎΠ΄Π° Javascript Π½Π° основС ИИ.

ΠšΠ°ΠΊΠΎΠ²Ρ‹ прСимущСства срСдства ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠΎΠ΄Π° JavaScript Π½Π° основС ИИ?

БрСдство ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠΎΠ΄Π° JavaScript Π½Π° основС ИИ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ синтаксичСскиС ошибки ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с качСством ΠΊΠΎΠ΄Π°, Π²Π»ΠΈΡΡŽΡ‰ΠΈΠ΅ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ прилоТСния JavaScript. Π­Ρ‚ΠΈ инструмСнты ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ искусствСнного ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π° ΠΈΠ»ΠΈ машинного обучСния, ΠΎΠ±ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π²Ρ‹ΡΠ²Π»ΡΡ‚ΡŒ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ соотвСтствуСт ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠ²Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌ обСспСчСния бСзопасности ΠΈ качСства. БрСдства ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ JavaScript-ΠΊΠΎΠ΄Π° Π½Π° Π±Π°Π·Π΅ ИИ часто ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ Π²Ρ‹ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π² Ρ…ΠΎΠ΄Π΅ экспСртной ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈΠ»ΠΈ ΠΏΠ°Ρ€Π½ΠΎΠ³ΠΎ программирования.

Как ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΉ синтаксис JavaScript?

Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ синтаксиса Π½Π΅Π²Π΅Ρ€Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° начинаСтся с использования срСдства ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠΎΠ΄Π°. Π­Ρ‚ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ инструмСнты ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ синтаксичСских ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΎΠ±Ρ‰ΠΈΡ… сообщСний, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π΄Π°Ρ‚ΡŒ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ JavaScript, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ SyntaxError: нСоТиданная строка ΠΈΠ»ΠΈ SyntaxError: Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹ΠΉ Ρ‚ΠΎΠΊΠ΅Π½ . Π’Π°ΠΊΠΆΠ΅ рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ срСдство ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ для выявлСния логичСских ошибок, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ JavaScript Π²ΠΎ врСмя выполнСния. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ Π²Ρ‹ΡΠ²Π»ΡΡ‚ΡŒ ΠΈ ΠΈΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ с ΠΊΠΎΠ΄ΠΎΠΌ Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΏΠΎΠΏΠ°Π΄ΡƒΡ‚ Π² Ρ€Π°Π±ΠΎΡ‡ΡƒΡŽ срСду.

РаспространСнныС синтаксичСскиС ΠΈ логичСскиС ошибки JavaScript

БущСствуСт мноТСство синтаксичСских ΠΈ логичСских ошибок, поэтому Π²Π°ΠΆΠ½ΠΎ Π·Π½Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнныС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½Ρ‹ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊΠΎΠΌ ΠΈΠ»ΠΈ срСдством ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠΎΠ΄Π°. Π’ΠΎΡ‚ нСсколько Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ распространСнных синтаксичСских ошибок JavaScript:

  • ОбъявлСниС ΠΈ инициализация ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π²Π²Π΅Ρ€Ρ…Ρƒ
  • Никогда Π½Π΅ ΠΎΠ±ΡŠΡΠ²Π»ΡΠΉΡ‚Π΅ числовыС, строковыС ΠΈΠ»ΠΈ логичСскиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹
  • ΠžΡΡ‚Π΅Ρ€Π΅Π³Π°ΠΉΡ‚Π΅ΡΡŒ автоматичСского прСобразования Ρ‚ΠΈΠΏΠΎΠ² Π² матСматичСских опСрациях
  • ВсСгда Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΠΉΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ switch Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ
  • ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΠΉΡ‚Π΅ всС скобки ΠΈ ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки

БрСдство ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠΎΠ΄Π° JavaScript ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅ΠΎΡ†Π΅Π½ΠΈΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для обнаруТСния ΠΈ прСдотвращСния ошибок Π½Π° Ρ€Π°Π½Π½ΠΈΡ… этапах процСсса Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ

ЛогичСскиС ошибки Π½Π΅ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°ΡŽΡ‚ΡΡ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ JavaScript, Π½ΠΎ ΠΎΠ½ΠΈ ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π» Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ. Однако срСдства ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ошибок JavaScript ΠΈΡ‰ΡƒΡ‚ логичСскиС ошибки. Π’ΠΎΡ‚ нСсколько совСтов, ΠΊΠ°ΠΊ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ логичСских ошибок, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ рСгулярно Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€ΠΈ написании ΠΊΠΎΠ΄Π° JavaScript:

  • ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹, Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ null
  • Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ использования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ eval()
  • Π˜Π·Π±Π΅Π³Π°ΠΉΡ‚Π΅ использования Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ ΠΎΡ‚Π΄Π°Π²Π°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌ
  • НС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ new Object()
  • Π‘ΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΡŒΡ‚Π΅ΡΡŒ Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΈΠ· Ρ†ΠΈΠΊΠ»ΠΎΠ² Early
  • НС ΠΏΡƒΡ‚Π°ΠΉΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ присваивания (=) ΠΈ равСнства (==, ===)

Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ JavaScript Code Checker для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ качСства ΠΊΠΎΠ΄Π° ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² бСзопасности

БрСдство ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠΎΠ΄Π° JavaScript ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅ΠΎΡ†Π΅Π½ΠΈΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для обнаруТСния ΠΈ прСдотвращСния ошибок Π½Π° Ρ€Π°Π½Π½ΠΈΡ… этапах процСсса Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ прСдотвращСния внСдрСния Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌΠΈ уязвимостСй бСзопасности JavaScript. Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ сканирования особСнно ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ для JavaScript, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ это ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ язык, Π° это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²ΠΎ врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π΅Ρ‚ процСсса компиляции, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠ΅Ρ‡Π°Π΅Ρ‚ синтаксичСскиС ошибки ΠΏΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ. Π₯отя Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π²ΠΈΠΆΠΊΠΈ JavaScript Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡŽ Ρ‚ΠΎΡ‡Π½ΠΎ Π² срок, это ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ ошибки Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ·ΠΆΠ΅ Π² процСссС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ β€” Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠΉ аспСкт ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠΎΠ΄Π° JavaScript. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ автоматичСский статичСский Π°Π½Π°Π»ΠΈΠ·, Π³Ρ€ΡƒΠΏΠΏΡ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈ ΡƒΡΡ‚Ρ€Π°Π½ΡΡ‚ΡŒ уязвимости Π½Π° Ρ€Π°Π½Π½ΠΈΡ… этапах процСсса Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Π° Π½Π΅ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚Ρ‹ бСзопасности послС развСртывания. Π­Ρ‚ΠΎΡ‚ сдвиг Π² сторону бСзопасности ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ риску ΠΈ ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ кибСрбСзопасности Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… организациях.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠ΅ автоматичСской ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΊΠΎΠ΄Π° Π² процСссС Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ качСство ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° JavaScript, Π½Π΅ трСбуя ΠΎΡ‚ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… усилий.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ качСство ΠΊΠΎΠ΄Π° JavaScript?

Π˜Π·ΠΌΠ΅Ρ€Π΅Π½ΠΈΠ΅ качСства ΠΊΠΎΠ΄Π° JavaScript ΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°Ρ€ΡŒΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² зависимости ΠΎΡ‚ Π»ΡƒΡ‡ΡˆΠΈΡ… ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊ ΠΈ стандартов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ². Π’ΠΎΡ‚ ΠΏΡΡ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΡ… ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΎΠ² Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ любой ΠΊΠΎΠ΄ JavaScript являСтся высококачСствСнным.

ΠŸΠΎΠ½ΡΡ‚Π½Ρ‹ΠΉ

Π›ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Если ваш ΠΊΠΎΠ΄ JavaScript понятСн Π΄Ρ€ΡƒΠ³ΠΈΠΌ Если ваш ΠΊΠΎΠ΄ JavaScript понятСн Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°ΠΌ, Π΅Π³ΠΎ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Π³Ρ‡Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π² долгосрочной пСрспСктивС. ΠŸΠΎΠ½ΡΡ‚Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ согласованный синтаксис, осмыслСнныС соглашСния ΠΎΠ± ΠΈΠΌΠ΅Π½Π°Ρ… ΠΈ согласованныС ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π·Π½Π°Π»ΠΈ, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠΎΠ΄ ΠΈ Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½ Π½ΡƒΠΆΠ΅Π½. Π­Ρ‚ΠΎ Π²Π°ΠΆΠ½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄, написанный мСсяцами ΠΈΠ»ΠΈ Π³ΠΎΠ΄Π°ΠΌΠΈ Ρ€Π°Π½Π΅Π΅.

Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ
Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Π·Π°Π΄ΡƒΠΌΡ‹Π²Π°Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ исходный ΠΊΠΎΠ΄ Ρ…ΠΎΡ€ΠΎΡˆΠΎ протСстирован ΠΈ Π½Π΅ содСрТит логичСских ошибок, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ впослСдствии ΠΌΠΎΠ³ΡƒΡ‚ Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½ΠΎ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ. Π’Π°ΠΊΠΆΠ΅ Π²Π°ΠΆΠ½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ, Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ ΠΎΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ прилоТСния.

Π’Π΅ΡΡ‚ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ
НаписаниС Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π½ΠΎΠ³ΠΎ понятного ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ тСстированиС. Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒΡΡ Π½Π° ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΡ… Ρ†Π΅Π»Π΅Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠ°Ρ… ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ тСстирования. Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, основанный Π½Π° тСстировании, с тСстовыми ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ, написанными Π΄ΠΎ написания ΠΊΠΎΠ΄Π°, Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ качСство ΠΊΠΎΠ΄Π°.

БСзопасный
ВысококачСствСнный ΠΊΠΎΠ΄ JavaScript Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ бСзопасным, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠΈ Π½Π΅ ΠΌΠΎΠ³Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅. Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ сканирования ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ уязвимости Π² ΠΊΠΎΠ΄Π΅, Ρ„Π°ΠΉΠ»Π°Ρ… ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ ΠΈ Ρ‚. Π΄., Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΌΠΎΠ³Π»ΠΈ свСсти ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌΡƒ риски бСзопасности Π²ΠΎ врСмя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.

Π‘ΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°Π΅ΠΌΡ‹ΠΉ
Π‘ΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° JavaScript ΠΈΠΌΠ΅Π΅Ρ‚ Ρ€Π΅ΡˆΠ°ΡŽΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ для прСдотвращСния ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ. По ΠΌΠ΅Ρ€Π΅ роста ΠΈ услоТнСния ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹ низкокачСствСнный ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ тСхничСскому Π΄ΠΎΠ»Π³Ρƒ.

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *