ÐÑÐ¾Ñ Ñаздел опиÑÑÐ²Ð°ÐµÑ ÑинÑакÑÐ¸Ñ JavaScript. ÐÑÑ Ð¾Ð´Ð½Ñй код ECMAScript ÑкÑипÑов ÑканиÑÑеÑÑÑ Ñлева напÑаво и пÑеобÑазÑеÑÑÑ Ð² поÑледоваÑелÑноÑÑÑ Ð½Ð°Ð¹Ð´ÐµÐ½Ð½ÑÑ ÑлеменÑов в ÑокенÑ, ÑпÑавлÑÑÑие ÑимволÑ, оконÑÐ°Ð½Ð¸Ñ ÑÑÑок, комменÑаÑии или пÑобелÑ.
ECMAScript Ñакже опÑеделÑÐµÑ ÐºÐ»ÑÑевÑе Ñлова и лиÑеÑÐ°Ð»Ñ Ð¸ Ð¸Ð¼ÐµÐµÑ ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð´Ð»Ñ Ð°Ð²ÑомаÑиÑеÑкой вÑÑавки ÑоÑек Ñ Ð·Ð°Ð¿ÑÑой к конÑÑ Ð¸Ð½ÑÑÑÑкÑии.
СпеÑÑимволÑСпеÑÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ð½Ðµ имеÑÑ Ð²Ð¸Ð·ÑалÑного пÑедÑÑавлениÑ, однако иÑполÑзÑÑÑÑÑ Ð´Ð»Ñ ÑпÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð½ÑеÑпÑеÑаÑией ÑекÑÑа.
Code point Name Abbreviation DescriptionU+200C
Zero width non-joiner <ZWNJ> РазмеÑаеÑÑÑ Ð¼ÐµÐ¶Ð´Ñ Ñимволами во избежание иÑ
Ñоединений в лигаÑÑÑÑ Ð´Ð»Ñ Ð½ÐµÐºÐ¾ÑоÑÑÑ
ÑзÑков (Wikipedia) U+200D
Zero width joiner <ZWJ> РазмеÑаеÑÑÑ Ð¼ÐµÐ¶Ð´Ñ Ñимволами, коÑоÑÑе не могли Ð±Ñ Ð½Ð¾ÑмалÑно обÑединиÑÑÑÑ Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ð¾ÑÑиÑовÑвалиÑÑ, иÑполÑзÑÑ Ð¸Ñ
ÑоединиÑелÑнÑÑ ÑоÑÐ¼Ñ Ð² некоÑоÑÑÑ
ÑзÑкаÑ
(Wikipedia) U+FEFF
Byte order mark <BOM> ÐÑполÑзÑеÑÑÑ Ð²Ð½Ð°Ñале ÑкÑипÑа Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ Ð¿Ð¾Ð¼ÐµÑиÑÑ Ð®Ð½Ð¸ÐºÐ¾Ð´ и поÑÑдок байÑов (Wikipedia) ÐÑобелÑ
ÐÑобелÑнÑе ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ ÑлÑÑÑаÑÑ ÑиÑабелÑноÑÑÑ Ð¸ÑÑ Ð¾Ð´Ð½Ð¾Ð³Ð¾ ÑекÑÑа и ÑазделÑÐµÑ ÑÐ¾ÐºÐµÐ½Ñ Ð´ÑÑг Ð¾Ñ Ð´ÑÑга. ÐÑобелÑнÑе ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ð¾Ð±ÑÑно не обÑзаÑелÑÐ½Ñ Ð´Ð»Ñ ÑÑнкÑиониÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ¾Ð´Ð°. УÑилиÑÑ Ð´Ð»Ñ ÑменÑÑÐµÐ½Ð¸Ñ Ð¾Ð±ÑÑма кода ÑаÑÑо ÑдалÑÑÑ Ð¿ÑобелÑнÑе ÑимволÑ, ÑÑÐ¾Ð±Ñ ÑменÑÑиÑÑ Ð¾Ð±Ñем кода.
Code point Name Abbreviation Description Escape sequence U+0009 Character tabulation <HT> ÐоÑизонÑалÑÐ½Ð°Ñ ÑабÑлÑÑÐ¸Ñ \t U+000B Line tabulation <VT> ÐеÑÑикалÑÐ½Ð°Ñ ÑабÑлÑÑÐ¸Ñ \v U+000C Form feed <FF> Символ конÑÑÐ¾Ð»Ñ ÑазÑÑва ÑÑÑаниÑÑ (Wikipedia) \f U+0020 Space <SP> ÐбÑÑнÑй пÑобел U+00A0 No-break space <NBSP> ÐбÑÑнÑй пÑобел без ÑоÑки, на коÑоÑой Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑоизойÑи ÑазÑÑв ÑÑÑаниÑÑ Others Other Unicode space characters <USP> ÐÑÑгие ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ð² Ðикипедии ÐконÑание ÑÑÑокРдополнение к пÑобелÑнÑм Ñимволам, ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ð¾ÐºÐ¾Ð½ÑÐ°Ð½Ð¸Ñ ÑÑÑок Ñоже иÑполÑзÑÑÑÑÑ Ð´Ð»Ñ ÑиÑабелÑноÑÑи иÑÑ Ð¾Ð´Ð½Ð¾Ð³Ð¾ кода. Ðднако, в некоÑоÑÑÑ ÑлÑÑаÑÑ , ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ð¾ÐºÐ¾Ð½ÑÐ°Ð½Ð¸Ñ ÑÑÑок могÑÑ Ð²Ð»Ð¸ÑÑÑ Ð½Ð° вÑполнение JavaScript-кода, Ñ.к. еÑÑÑ Ð½ÐµÐºÐ¾ÑоÑÑе меÑÑа, где они запÑеÑенÑ.
ÐконÑÐ°Ð½Ð¸Ñ ÑÑÑок Ñакже заÑÑагиваÑÑ Ð¿ÑоÑеÑÑ Ð°Ð²ÑомаÑиÑеÑкого пÑоÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑоÑки Ñ Ð·Ð°Ð¿ÑÑой. Также оконÑÐ°Ð½Ð¸Ñ ÑÑÑок попадаÑÑ Ð¿Ð¾Ð´ ÑÑÐ»Ð¾Ð²Ð¸Ñ ÑегÑлÑÑнÑÑ Ð²ÑÑажений пÑи поиÑке \s клаÑÑа.
Ð ECMAScript, в каÑеÑÑве оконÑÐ°Ð½Ð¸Ñ ÑÑÑок можно иÑполÑзоваÑÑ ÑолÑко ниже пеÑеÑиÑленнÑе Юникод ÑимволÑ. ÐÑÑгие ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ Ð¾ÐºÐ¾Ð½ÑÐ°Ð½Ð¸Ñ ÑÑÑок бÑдÑÑ Ð¸Ð½ÑеÑпÑеÑиÑованÑ, как пÑобелÑнÑе ÑÐ¸Ð¼Ð²Ð¾Ð»Ñ (напÑимеÑ, Next Line, NEL, U+0085 бÑдÑÑ Ð¸Ð½ÑеÑпÑеÑиÑоваÑÑÑÑ, как пÑобелÑнÑе ÑимволÑ).
Code point Name Abbreviation Description Escape sequence U+000A Line Feed <LF> ÐÐ¾Ð²Ð°Ñ ÑÑÑока в UNIX ÑиÑÑÐµÐ¼Ð°Ñ . \n U+000D Carriage Return <CR> ÐÐ¾Ð²Ð°Ñ ÑÑÑока в Commodore и ÑÐ°Ð½Ð½Ð¸Ñ Mac systems. \r U+2028 Line Separator <LS> Wikipedia U+2029 Paragraph Separator <PS> Wikipedia ÐомменÑаÑииÐомменÑаÑии иÑполÑзÑÑÑÑÑ Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´Ñказок, замеÑок, пÑедложений или пÑедÑпÑеждений. Ðни могÑÑ ÑпÑоÑÑиÑÑ ÑÑение и понимание кода. Также они могÑÑ Ð±ÑÑÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ñ Ð´Ð»Ñ Ð¿ÑедоÑвÑаÑÐµÐ½Ð¸Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð´Ð° (ÑÑÐ¾Ñ Ð¿ÑиÑм пÑакÑикÑеÑÑÑ Ð¿Ñи оÑладке кода).
Ð JavaScript еÑÑÑ Ð½ÐµÑколÑко ÑпоÑобов ÑказаÑÑ ÐºÐ¾Ð¼Ð¼ÐµÐ½ÑаÑии в коде.
ÐеÑвÑй ÑпоÑоб //
комменÑаÑий; в ÑÑом ÑлÑÑае веÑÑ ÑекÑÑ Ð² ÑÑÑоке поÑле двойного ÑлеÑа бÑÐ´ÐµÑ ÐºÐ¾Ð¼Ð¼ÐµÐ½ÑаÑием, напÑимеÑ:
function comment() {
// ÐÑо комменÑаÑий в ÑÑÑоке
console.log("Hello world!");
}
comment();
ÐÑоÑой ÑпоÑоб - ÑÑо /* */
, Ñакой ÑпоÑоб более гибок, Ñем пеÑвÑй.
ÐапÑимеÑ, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ ÐµÐ³Ð¾ в одной ÑÑÑоке:
function comment() {
/* ÐÑо одноÑÑÑоÑнÑй комменÑаÑий */
console.log("Hello world!");
}
comment();
Ðибо Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе ÑделаÑÑ Ð¼Ð½Ð¾Ð³Ð¾ÑÑÑоÑнÑй комменÑаÑий, как показано здеÑÑ:
function comment() {
/* ÐÑÐ¾Ñ ÐºÐ¾Ð¼Ð¼ÐµÐ½ÑаÑий ÑаÑполагаеÑÑÑ Ð½Ð° неÑколÑкиÑ
линиÑÑ
.
ÐбÑаÑиÑе внимание, ÑÑо вам не нÑжно обÑÑваÑÑ ÐºÐ¾Ð¼Ð¼ÐµÐ½ÑаÑий, пока Ð²Ñ ÐµÐ³Ð¾ не законÑиÑе*/
console.log("Hello world!");
}
comment();
Также, еÑли пожелаеÑе, Ñо Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе иÑполÑзоваÑÑ Ñакое комменÑиÑование поÑÑеди ÑÑÑоки кода. ХоÑÑ ÑÑо Ð¼Ð¾Ð¶ÐµÑ ÑÑ ÑдÑиÑÑ ÑиÑабелÑноÑÑÑ ÐºÐ¾Ð´Ð°:
function comment(x) {
console.log("Hello " + x /* вÑÑавÑÑе знаÑение x */ + " !");
}
comment("world");
ЧÑÐ¾Ð±Ñ Ð¾ÑклÑÑиÑÑ Ð²Ñполнение кода, пÑоÑÑо обеÑниÑе код в комменÑаÑий, как здеÑÑ:
function comment() {
/* console.log("Hello world!"); */
}
comment();
Ð ÑÑом ÑлÑÑае console.log()
никогда не вÑполниÑÑÑ, пока он внÑÑÑи комменÑаÑиÑ. Таким ÑпоÑобом можно оÑклÑÑиÑÑ Ð»Ñбое колиÑеÑÑво ÑÑÑок кода.
ТÑеÑий ÑпеÑиализиÑованнÑй ÑинÑакÑÐ¸Ñ ÐºÐ¾Ð¼Ð¼ÐµÐ½ÑаÑиев, Ñебанг комменÑаÑий, в пÑоÑеÑÑе ÑÑандаÑÑизаÑии в ECMAScript (ÑмоÑÑеÑÑ Hashbang Grammar proposal).
Шебанг комменÑаÑий ведÑÑ ÑÐµÐ±Ñ ÑоÑно Ñакже как и одноÑÑÑоÑнÑй (//
) комменÑаÑий. ÐмеÑÑо ÑÑого, он наÑинаеÑÑÑ Ñ #!
и дейÑÑвиÑелен ÑолÑко в Ñамом наÑале ÑкÑипÑа или модÑлÑ. ÐбÑаÑиÑе внимание, ÑÑо никакие пÑÐ¾Ð±ÐµÐ»Ñ Ð½Ðµ ÑазÑеÑÐµÐ½Ñ Ð¿ÐµÑед #!
. ÐомменÑаÑий ÑоÑÑÐ¾Ð¸Ñ Ð¸Ð· вÑеÑ
Ñимволов поÑле #!
до конÑа пеÑвой ÑÑÑоки; ÑолÑко Ñакой комменÑаÑий ÑазÑеÑÑн.
Шебанг комменÑаÑий опÑеделÑÐµÑ Ð¿ÑÑÑ Ðº JavaScript инÑеÑпÑеÑаÑоÑÑ, ÑкÑÐ¸Ð¿Ñ ÐºÐ¾ÑоÑого Ð²Ñ Ñ Ð¾ÑиÑе вÑполниÑÑ. ÐÑимеÑ, как ÑÑо ÑабоÑаеÑ:
#!/usr/bin/env node
console.log("Hello world");
ÐÑимеÑание: Hashbang comments in JavaScript mimic shebangs in Unix used to run files with proper interpreter.
ÐÑедÑпÑеждение: Although BOM before hashbang comment will work in a browser it is not advised to use BOM in a script with hasbang. BOM will not work when you try to run the script in Unix/Linux. So use UTF-8 without BOM if you want to run scripts directly from shell.
ÐÐ»Ñ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ JavaScript инÑеÑпÑеÑаÑоÑа иÑполÑзÑйÑе ÑолÑко #!
. РлÑбÑÑ
дÑÑгиÑ
ÑлÑÑаÑÑ
иÑполÑзÑйÑе //
(или многоÑÑÑоÑнÑй комменÑаÑий).
СледÑÑÑие клÑÑевÑе Ñлова заÑезеÑвиÑÐ¾Ð²Ð°Ð½Ñ Ð½Ð° бÑдÑÑее ECMAScript ÑпеÑиÑикаÑией. Ðа ними ÑейÑÐ°Ñ Ð½Ðµ ÑÑÐ¾Ð¸Ñ Ð½Ð¸ÐºÐ°ÐºÐ¾Ð¹ ÑÑнкÑионалÑноÑÑи, но она Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾ÑвиÑÑÑÑ Ð² бÑдÑÑÐ¸Ñ Ð²ÐµÑÑиÑÑ , поÑÑÐ¾Ð¼Ñ ÑÑи клÑÑевÑе Ñлова не могÑÑ Ð±ÑÑÑ Ð¸ÑполÑзованÑ, как иденÑиÑикаÑоÑÑ. ÐÑи клÑÑевÑе Ñлова не могÑÑ Ð±ÑÑÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ñ Ð´Ð°Ð¶Ðµ в strict или non-strict ÑÐµÐ¶Ð¸Ð¼Ð°Ñ .
enum
await
СледÑÑÑие клÑÑевÑе Ñлова заÑезеÑвиÑÐ¾Ð²Ð°Ð½Ñ Ð´Ð»Ñ ÐºÐ¾Ð´Ð°, коÑоÑÑй вÑполнÑеÑÑÑ Ð² strict Ñежиме:
implements
package
protected
static
interface
private
public
ÐеÑеÑиÑленнÑе ниже клÑÑевÑе Ñлова заÑезеÑвиÑÐ¾Ð²Ð°Ð½Ñ Ð´Ð»Ñ ÑÑаÑÑÑ Ð²ÐµÑÑий ECMAScript ÑпеÑиÑикаÑий (ECMAScript Ð¾Ñ 1 по 3).
abstract
boolean
byte
char
double
final
float
goto
int
long
native
short
synchronized
transient
volatile
Ð ÑÐ¾Ð¼Ñ Ð¶Ðµ, лиÑеÑÐ°Ð»Ñ null
, true
, и false
заÑезеÑвиÑÐ¾Ð²Ð°Ð½Ñ Ð² ECMAScript Ð´Ð»Ñ Ð¸Ñ
обÑÑной ÑÑнкÑионалÑноÑÑи.
ÐаÑезеÑвиÑованнÑе Ñлова дейÑÑвиÑелÑно пÑименÑÑÑÑÑ ÑолÑко к иденÑиÑикаÑоÑам (vs. IdentifierNames). Ðак опиÑано в es5.github.com/#A.1, ÑÑо вÑе имена IdentifierNames, коÑоÑÑе не иÑклÑÑаÑÑ Ð·Ð°ÑезеÑвиÑованнÑÑ Ñлов.
a.import
a["import"]
a = { import: "test" }.
С дÑÑгой ÑÑоÑонÑ, ÑледÑÑÑее вÑÑажение непÑавилÑно, Ñ.к. ÐденÑиÑикаÑÐ¾Ñ IdentifierName
не ÑодеÑÐ¶Ð¸Ñ Ð·Ð°ÑезеÑвиÑованнÑÑ
Ñлов. ÐденÑиÑикаÑоÑÑ Ð¸ÑполÑзÑÑÑÑÑ Ð´Ð»Ñ FunctionDeclaration, FunctionExpression, VariableDeclaration
и Ñ.п., в Ñо вÑемÑ, как IdentifierNames
иÑполÑзÑÑÑÑÑ Ð´Ð»Ñ MemberExpression, CallExpression
и Ñ.п.
function import() {} // непÑавилÑно.
ÐиÑеÑÐ°Ð»Ñ ÐиÑеÑал Null
ÐодÑобнее о
.null
null
ÐодÑобнее о
.Boolean
1234567890;
42;
// ÐÑдÑÑе оÑÑоÑÐ¾Ð¶Ð½Ñ Ñ Ð¸ÑполÑзованием нÑÐ»Ñ Ð²Ð½Ð°Ñале ÑиÑла:
0888; // 888 ÑаÑпознаеÑÑÑ, как деÑÑÑиÑное ÑиÑло
0777; // ÑаÑпознаеÑÑÑ, как воÑÑмеÑиÑное ÑиÑло, 511 - как деÑÑÑиÑное ÑиÑло
ÐмейÑе в видÑ, ÑÑо лиÑеÑÐ°Ð»Ñ Ð´ÐµÑÑÑиÑнÑÑ
ÑиÑел могÑÑ Ð½Ð°ÑинаÑÑÑÑ Ñ Ð½ÑÐ»Ñ (0), за коÑоÑÑм ÑледÑÐµÑ Ð´ÑÑгое деÑÑÑиÑное ÑиÑло, но в ÑлÑÑае, еÑли ÑиÑло наÑинаеÑÑÑ Ñ Ð½ÑÐ»Ñ Ð¸ за ним идÑÑ ÑиÑÑа менÑÑе 8, Ñо ÑиÑло бÑÐ´ÐµÑ ÑаÑпознано как воÑÑмеÑиÑное. This won't throw in JavaScript, see Firefox bug 957513. See also the page about
.parseInt()
СинÑакÑÐ¸Ñ Ð´Ð²Ð¾Ð¸ÑнÑÑ
ÑиÑел ÑоÑÑÐ¾Ð¸Ñ Ð¸Ð· ÑиÑÑÑ Ð½Ð¾Ð»Ñ, за коÑоÑой ÑледÑÐµÑ Ð¼Ð°Ð»ÐµÐ½ÑÐºÐ°Ñ Ð¸Ð»Ð¸ болÑÑÐ°Ñ Ð»Ð°ÑинÑÐºÐ°Ñ Ð±Ñква "B" (0b или 0B). ÐÑÐ¾Ñ ÑинÑакÑÐ¸Ñ Ð½Ð¾Ð²Ñй и поÑвилÑÑ ÑолÑко в ECMAScript 2015, пожалÑйÑÑа поÑмоÑÑиÑе ÑаблиÑÑ ÑовмеÑÑимоÑÑи Ñ Ð±ÑаÑзеÑами. ÐÑо Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑоизводиÑÑ Ð¾ÑибкÑ
: "Missing binary digits after 0b", ÐÑли ÑиÑÑÑ Ð½Ðµ 0 или 1.SyntaxError
var FLT_SIGNBIT = 0b10000000000000000000000000000000; // 2147483648
var FLT_EXPONENT = 0b01111111100000000000000000000000; // 2139095040
var FLT_MANTISSA = 0b00000000011111111111111111111111; // 8388607
Octal (воÑÑмеÑиÑнÑе ÑиÑла)
ÐоÑÑмеÑиÑнÑй ÑиÑловой ÑинÑакÑиÑ, коÑоÑÑй иÑполÑзÑÐµÑ 0 Ñ Ð¿Ð¾ÑледÑÑÑей, в нижнем или веÑÑ
нем ÑегиÑÑÑе, лаÑинÑкÑÑ Ð±ÑÐºÐ²Ñ "Ð" (0o
или 0O)
. ÐÑÐ¾Ñ ÑинÑакÑÐ¸Ñ Ð¿Ð¾ÑвилÑÑ Ð² ECMAScript 2015, пожалÑйÑÑа, поÑмоÑÑиÑе ÑаблиÑÑ ÑовмеÑÑимоÑÑи Ñ Ð±ÑаÑзеÑами. ÐÑо Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑоизводиÑÑ Ð¾ÑÐ¸Ð±ÐºÑ SyntaxError
: "Missing octal digits after 0o", еÑли ÑиÑÑÑ Ð½Ðµ Ð¼ÐµÐ¶Ð´Ñ 0 и 7.
var n = 0o755; // 493
var m = 0o644; // 420
// Так же возможно Ñ Ð»Ð¸Ð´Ð¸ÑÑÑÑими нÑлÑми (Ñм. замеÑÐºÑ Ð¾ деÑÑÑиÑнÑÑ
дÑобÑÑ
вÑÑе)
0755;
0644;
Hexadecimal (ÑеÑÑнадÑаÑеÑиÑнÑе ÑиÑла)
ШеÑÑнадÑаÑеÑиÑнÑй ÑиÑловой ÑинÑакÑиÑ, коÑоÑÑй иÑполÑзÑÐµÑ 0 Ñ Ð¿Ð¾ÑледÑÑÑей, в нижнем или веÑÑ
нем ÑегиÑÑÑе, лаÑинÑкÑÑ Ð±ÑÐºÐ²Ñ "X" (0x
или 0X)
. ÐÑли ÑиÑла поÑле 0x вне диапазона (0123456789ABCDEF), Ñо Ð¼Ð¾Ð¶ÐµÑ Ð¿Ð¾ÑледоваÑÑ Ð·Ð° ÑÑим SyntaxError
: "Identifier starts immediately after numeric literal".
0xfffffffffffffffff; // 295147905179352830000
0x123456789abcdef; // 81985529216486900
0xa; // 10
ÐиÑеÑал Object (ÐбÑекÑ)
СмоÑÑиÑе Ñакже Object
и Object initializer
Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð±Ð¾Ð»ÐµÐµ подÑобной инÑоÑмаÑии.
var o = { a: "foo", b: "bar", c: 42 };
// ÑокÑаÑÑÐ½Ð½Ð°Ñ Ð½Ð¾ÑаÑиÑ. ÐоÑвилаÑÑ Ð² ES2015
var a = "foo",
b = "bar",
c = 42;
var o = { a, b, c };
// вмеÑÑо
var o = { a: a, b: b, c: c };
ÐиÑеÑал Array (ÐаÑÑив)
СмоÑÑиÑе Ñакже Array
Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð±Ð¾Ð»ÐµÐµ подÑобной инÑоÑмаÑии.
[1954, 1974, 1990, 2014];
ÐиÑеÑал String (СÑÑока) ÐкÑаниÑование ÑеÑÑнадÑаÑеÑиÑной поÑледоваÑелÑноÑÑи ÐкÑаниÑование Юникод Ñимволов
ÐÐ»Ñ ÑкÑаниÑÐ¾Ð²Ð°Ð½Ð¸Ñ Ð®Ð½Ð¸ÐºÐ¾Ð´ Ñимволов обÑзаÑелÑно нÑжно ÑказаÑÑ Ð¿Ð¾ кÑайней меÑе 4 Ñимвола поÑле \u.
Unicode code point escapesÐовое в ECMAScript 2015. With Unicode code point escapes, any character can be escaped using hexadecimal numbers so that it is possible to use Unicode code points up to 0x10FFFF
. With simple Unicode escapes it is often necessary to write the surrogate halves separately to achieve the same.
See also String.fromCodePoint()
or String.prototype.codePointAt()
.
"\u{2F804}";
// the same with simple Unicode escapes
"\uD87E\uDC04";
ÐиÑеÑал РегÑлÑÑного вÑÑажениÑ
СмоÑÑиÑе Ñакже
Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð±Ð¾Ð»ÐµÐµ подÑобной инÑоÑмаÑии.RegExp
/ab+c/g
// An "empty" regular expression literal
// The empty non-capturing group is necessary
// to avoid ambiguity with single-line comments.
/(?:)/
ÐиÑеÑал Шаблона
СмоÑÑиÑе Ñакже template strings
Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð±Ð¾Ð»ÐµÐµ подÑобной инÑоÑмаÑии.
`string text`;
`string text line 1
string text line 2`;
`string text ${expression} string text`;
tag`string text ${expression} string text`;
ÐвÑомаÑиÑеÑÐºÐ°Ñ Ð²ÑÑавка "ÑоÑки Ñ Ð·Ð°Ð¿ÑÑой"
ÐекоÑоÑÑе JavaScript ÑÑловиÑ
Ð´Ð¾Ð»Ð¶Ð½Ñ Ð±ÑÑÑ Ð·Ð°Ð²ÐµÑÑÐµÐ½Ñ ÑоÑкой Ñ Ð·Ð°Ð¿ÑÑой и поÑÑÐ¾Ð¼Ñ Ð½Ð° ниÑ
влиÑÐµÑ Ð°Ð²ÑомаÑиÑеÑÐºÐ°Ñ Ð²ÑÑавка ÑоÑки Ñ Ð·Ð°Ð¿ÑÑой (ASI):
let
, const
, пеÑеменнÑеimport
, export
, обÑÑвление модÑлейdebugger
continue
, break
, throw
return
1. ТоÑка Ñ Ð·Ð°Ð¿ÑÑой ÑÑавиÑÑÑ Ð´Ð¾, когда огÑаниÑиÑÐµÐ»Ñ ÑÑÑоки или "}" is encountered that is not allowed by the grammar.
{ 1 2 } 3
// ÑоглаÑно ASI, бÑÐ´ÐµÑ Ð¿ÑеобÑазовано в
{ 1 2 ;} 3;
2. ТоÑка Ñ Ð·Ð°Ð¿ÑÑой ÑÑавиÑÑÑ Ð² конÑе, когда обнаÑÑжен ÐºÐ¾Ð½ÐµÑ Ð²Ð²Ð¾Ð´Ð¸Ð¼Ð¾Ð¹ ÑÑÑоки Ñокенов и паÑÑÐµÑ is unable to parse the single input stream as a complete program.
Here ++
is not treated as a postfix operator
applying to variable b
, because a line terminator occurs between b
and ++
.
a = b
++c
// ÑоглаÑно ASI, бÑÐ´ÐµÑ Ð¿ÑеобÑазовано в
a = b;
++c;
3. ТоÑка Ñ Ð·Ð°Ð¿ÑÑой вÑÑавлÑеÑÑÑ Ð² конÑе, когда ÑоглаÑно инÑÑÑÑкÑии Ñ Ð¾Ð³ÑаниÑеннÑм пÑоизводÑÑвом в гÑаммаÑике ÑледÑÐµÑ Ð¾Ð³ÑаниÑиÑÐµÐ»Ñ ÑÑÑоки. ÐÑи ÑÑвеÑÐ¶Ð´ÐµÐ½Ð¸Ñ Ñ Ð¿Ñавилами «no LineTerminator here» здеÑÑ:
++
and --
)continue
break
return
yield
, yield*
module
return
a + b
// ÑоглаÑно ASI, бÑÐ´ÐµÑ Ð¿ÑеобÑазовано в
return;
a + b;
СпеÑиÑикаÑии СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами ÐÑобенноÑÑи Firefox
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4