Lexical grammar

Bu çeviri eksik. Bu makaleyi İngilizceden tercüme etmemize yardım edin

Bu səhifə JavaScript-in leksik qrammatikasını təsvir edir. ECMAScript skriptlərinin mənbə mətni soldan sağa taranır və ayələr, nəzarət simvolları, xətt terminatorları, şərhlər və ya ağ boşluq olan giriş elementlərinin ardıcıllığına çevrilir. ECMAScript, həmçinin müəyyən açar sözlər və hərfləri müəyyənləşdirir və ifadələri sona çatdırmaq üçün nöqtəli vergüllərə avtomatik qoşulma qaydalarına malikdir.

Nəzarət simvolları
İdarəetmə simvollarının vizual nümayəndəliyi yoxdur, ancaq mətnin şərhini idarə etmək üçün istifadə olunur.

Unicode formatına nəzarət simvolları
Kod nöqtəsi Adı Qısaldılması Təsviri
U + 200C Sıfır eni qoşulmayan <ZWNJ> Müəyyən dillərdə ligaturlara qoşulmamaq üçün simvolların arasına yerləşdirilib (Wikipedia).
U + 200D Sıfır eniştiricisi <ZWJ> İşarələrin müəyyən dillərdə (Wikipedia) əlaqəli formasından istifadə olunmasına səbəb olmaq üçün ümumiyyətlə bağlanmayacaq simvollar arasında yerləşdirilmişdir.
U + FEFF Bayt sifariş nişanı <BOM> Skriptin əvvəlində onu Unicode və mətnin bayt sifarişi (Wikipedia) kimi qeyd etmək üçün istifadə olunur.
Ağ boşluq
Ağ boşluq simvolları mənbə mətninin oxunuşunu yaxşılaşdırır və ayələrini bir-birindən ayırır. Bu işarələr ümumiyyətlə kodun işləməsi üçün lazımsızdır. Transfer edilməsi lazım olan məlumatların miqdarını azaltmaq üçün tez-tez boşluq silmək üçün minifikasiya vasitələri istifadə olunur.

Ağ boşluq simvolları
Kod nöqtəsi Adı Qısaldılması Təsvir Escape ardıcıllığı
U + 0009 Xarakter cədvəli <HT> Üfüqi cədvəl \ t
U + 000B Xətt cədvəli <VT> Şaquli cədvəl \ v
U + 000C Forma yemi <FF> Səhifəni pozan idarəetmə xarakteri (Wikipedia). \ f
U + 0020 Məkan <SP> Normal yer
U + 00A0 Arası olmayan yer <NBSP> Normal yer, lakin xəttin qırıla biləcəyi nöqtə yoxdur
Digərləri Digər Unicode kosmik simvolları <USP> Wikipedia'dakı Unicode'dakı boşluqlar
Xətt terminatorları
Ağ boşluq simvollarına əlavə olaraq, mənbə mətninin oxunuşunu yaxşılaşdırmaq üçün xətt terminatoru simvolları istifadə olunur. Bununla birlikdə, bəzi hallarda, xətt terminatorları JavaScript kodunun icrasına təsir göstərə bilər, çünki qadağan edilmiş bir neçə yer var. Xətt terminatorları avtomatik nöqtəli vergül daxil edilməsi prosesinə də təsir göstərir. Sətir terminatorları müntəzəm ifadələrdə siniflər tərəfindən uyğunlaşdırılır.

Yalnız aşağıdakı Unicode kod nöqtələrinə ECMAScript-də xətt terminatoru kimi baxılır, digər xətt kəsici simvollara ağ boşluq kimi baxılır (məsələn, Next Line, NEL, U + 0085 ağ boşluq sayılır).

Xətt terminatoru simvolları
Kod nöqtəsi Adı Qısaldılması Təsvir Escape ardıcıllığı
U + 000A Line Feed <LF> UNIX sistemlərində yeni xətt xarakteri. \ n
U + 000D Daşımanın qaytarılması <CR> Commodore və erkən Mac sistemlərində yeni xətt xarakteri. \ r
U + 2028 Xət ayırıcı <LS> Vikipediya
U + 2029 Paraqraf ayırıcı <PS> Wikipedia
Şərhlər
Şərhlər JavaScript koduna işarə, qeyd, təklif və ya xəbərdarlıq əlavə etmək üçün istifadə olunur. Bu oxumağı və başa düşməyi asanlaşdıra bilər. Kodun icra edilməməsi üçün deaktiv edilmək üçün istifadə edilə bilər; bu dəyərli ayıklama vasitəsi ola bilər.

JavaScript'də şərhə əlavə etmək üçün uzun müddətdir davam edən iki yol var.

Birinci yol // şərh; bu eyni sətirdə onu izləyən bütün mətnləri bir şərh halına gətirir. Misal üçün:

funksiya comment () {
  // Bu bir xəttli JavaScript şərhidir
  console.log ('Salam dünya!');
}
Şərh();
İkinci yol daha çevik olan / * * / üslubdur.

Məsələn, bir xəttdə istifadə edə bilərsiniz:

funksiya comment () {
  / * Bu bir xəttli JavaScript şərhidir * /
  console.log ('Salam dünya!');
}
Şərh();
Bununla yanaşı, çox sətirli şərhlər edə bilərsiniz:

funksiya comment () {
  / * Bu şərh çox sətri əhatə edir. Xəbərdarlıq
     başa çatana qədər şərhə son qoymaq lazım deyil. * /
  console.log ('Salam dünya!');
}
Şərh();
İstəsəniz, bir xəttin ortasında da istifadə edə bilərsiniz, baxmayaraq ki bu kodunuzu oxumağı çətinləşdirə bilər, buna görə ehtiyatla istifadə olunmalıdır:

funksiya şərhi (x) {
  console.log ('Salam' + x / * x * / + '!' dəyərini daxil edin);
}
şərh ('dünya');
Bundan əlavə, kodu bir şərhə bağlayaraq işə salmamaq üçün kodu deaktiv etmək üçün istifadə edə bilərsiniz:

funksiya comment () {
  / * console.log ('Salam dünya!'); * /
}
Şərh();
Bu vəziyyətdə, konsol.log () çağırışı heç bir şərh daxilində olmadığı üçün verilmir. İstənilən sayda kod xətti bu şəkildə əlil ola bilər.

Hashbang şərhləri
Xüsusi üçüncü bir şərh sintaksisi, hashbang comment, ECMAScript-də standartlaşdırılma mərhələsindədir (Hashbang Qrammatikası təklifinə baxın).

Bir hashbang şərhini yalnız bir xətt (yalnız) şərh kimi edir. Bunun əvəzinə # ilə başlayır! və yalnız bir yazı və ya modulun mütləq başlanğıcında etibarlıdır. Nəzərə alın ki, hər hansı bir boşluq # # -dan əvvəl icazə verilmir. Şərh # sonrakı bütün simvollardan ibarətdir! birinci sətrin sonuna qədər; yalnız bir belə şərhə icazə verilir.

Hashbang şərh, skriptin icrası üçün istifadə etmək istədiyiniz xüsusi JavaScript tərcüməçisinə gedən yolu göstərir. Nümunə aşağıdakı kimidir:

#! / usr / bin / env node

console.log ("Salam dünya");
Qeyd: JavaScript-dəki Hashbang şərhləri Unix-də təqlid olunan shebangs-ləri faylları düzgün tərcüməçi ilə işlədirdi.

Hashbang şərhindən əvvəl BOM bir brauzerdə işləsə də, BOM-u hasbang yazılmış bir skriptdə istifadə etmək tövsiyə edilmir. Unix / Linux-da skript işə saldığınız zaman BOM işləməyəcək. Skriptləri birbaşa işlətmək istəyirsinizsə UTF-8-ni BOM olmadan istifadə edin

qabıqdan.

Yalnız # istifadə etməlisiniz! JavaScript tərcüməçisini təyin etmək üçün şərh tərzi. Digər bütün hallarda sadəcə bir // şərh (və ya mulitiline comment) istifadə edin.

Açar sözlər
ECMAScript 2015 kimi qorunan açar sözlər
break
dava
tutun
sinif
const
davam et
debugger
default
Sil
etmək
başqa
ixrac
uzanır
nəhayət
üçün
funksiya
əgər
idxal
in
instanceof
yeni
qayıt
super
keçid
bu
atmaq
cəhd edin
typeof
var
etibarsız
isə
ilə
gəlir
Gələcək qorunan açar sözlər
Aşağıdakılar ECMAScript spesifikasiyası ilə gələcək açar sözlər kimi qorunur. Hal-hazırda onların heç bir xüsusi funksionallığı yoxdur, lakin gələcəkdə də ola bilər, buna görə identifikator kimi istifadə edilə bilməzlər.

Bunlar həmişə qorunur:

enum
Aşağıdakılar yalnız ciddi rejim kodlarında tapıldıqda qorunur:

tətbiq edir
interfeysi
qoy
paket
özəl
qorunur
ictimai
statik
Aşağıdakılar yalnız modul kodu tapdıqda qorunur:

gözləmək
Gələcəkdə köhnə standartlarda qorunan açar sözlər
Aşağıdakılar köhnə ECMAScript xüsusiyyətlərinə görə gələcək açar sözlər olaraq qorunur (ECMAScript 1-dən 3-ə qədər).

mücərrəd
boolean
bayt
char
ikiqat
final
sal
getmək
int
uzun
doğma
qısa
sinxronizasiya olunur
atır
keçici
uçucu
Bundan əlavə, null, əsl və yalnış hərflər ECMAScript-də identifikator kimi istifadə edilə bilməz.

Ehtiyat söz istifadəsi
Qorunan sözlər əslində yalnız identifikatorlara aiddir (identifikator adları). Es5.github.com/#A.1-də təsvir olunduğu kimi, bunlar hamısı ReserveWords-ı istisna etməyən identifikator adlarıdır.

a.import
a ['idxal']
a = {idxal: 'test'}.
Digər tərəfdən aşağıdakılar qanunsuzdur, çünki qorunan sözlər olmadan bir identifikator adıdır. Eyniləşdiricilər FunctionDeclaration, FunctionExpression, Dəyişən Deklarasiya və s. Üçün istifadə olunur. Identifikator adları MemberExpression, CallExpression və s. Üçün istifadə olunur.

funksiya import () {} // qeyri-qanuni.
Xüsusi mənaları olan identifikatorlar
Bəzi identifikatorların heç bir növ açar sözlər olmadan bəzi məzmunlarda xüsusi bir mənası var. Bunlara daxildir:

bu sintaksis ECMAScript 2015-də yenidir, brauzer uyğunluğu cədvəlinə baxın. 0o-dan sonrakı rəqəmlər (01234567) aralığın xaricindədirsə, aşağıdakı SyntaxError atılır: "0o-dan sonra itmiş səkkizbucaqlı rəqəmlər".

var n = 0O755; // 493
var m = 0o644; // 420

// Yalnız bir aparıcı sıfır ilə mümkündür (yuxarıdakı onluğa dair qeydə baxın)
0755
0644
Altıbucaqlıdır
Hexadecimal nömrə sintaksisində kiçik və ya böyük hərfli Latın "X" (0x və ya 0X) hərfinin ardınca aparıcı sıfır istifadə olunur. 0x-dən sonra rəqəmlər aralığın xaricindədirsə (0123456789ABCDEF), aşağıdakı SyntaxError atılır: "Identifikator rəqəmli hərfdən dərhal sonra başlayır".

0xFFFFFFFFFFFFFFFFF // 295147905179352830000
0x123456789ABCDEF // 81985529216486900
0XA // 10
BigInt hərfi
BigInt növü JavaScript-də ixtiyari dəqiqliklə tam ədədləri təmsil edə bilən ədədi ibtidai. BigInt hərfləri tam ədədin sonuna n əlavə etməklə yaradılır.

123456789123456789n // 123456789123456789
0o777777777777n // 68719476735
0x123456789ABCDEFn // 81985529216486895
0b11101001010101010101n // 955733
Qeyd edək ki, yalnız bir lider sıfır olan köhnə səkkizbucaqlı rəqəmlər BigInt üçün işləməyəcək:

// 0755n
// SyntaxError: etibarsız BigInt sintaksisi
Səkkizbucaqlı BigInt nömrələri üçün hər zaman sıfırdan sonra "o" hərfi ilə (böyük və ya kiçik hərf) istifadə edin:

0o755n
BigInt haqqında daha çox məlumat üçün JavaScript məlumat strukturlarına da baxın.

Sayısal ayırıcılar
Rəqəmsal hərflərin oxunuşunu yaxşılaşdırmaq üçün alt nöqtələrdən (_, U + 005F) ayırıcı kimi istifadə edilə bilər

// onluq sayda ayırıcılar
1_000_000_000_000
1_050.95

// ikili nömrələrdə ayırıcılar
0b1010_0001_1000_0101

// səkkizbucaqlı ədədlərdə ayrıcılar
0o2_2_5_6

// hex ədədlərindəki ayırıcılar
0xA0_B0_C0

// BigInts-də ayırıcılar
1_000_000_000_000_000_000_000n
Bu məhdudiyyətlərə diqqət yetirin:

// Bir dəfədən çox alt qeyd etməyə icazə verilmir
100__000; // Söz düzümü səhvi

// Rəqəmsal hərflərin sonunda icazə verilmir
100_; // Söz düzümü səhvi

// 0-dan sonra istifadə edilə bilməz
0_1; // Söz düzümü səhvi
Obyekt hərfləri
Əlavə məlumat üçün Obyekt və Obyekt başlatıcısına da baxın.

var o = {a: 'foo', b: 'bar', c: 42};

// stenoqram notation. ES2015-də yenidir
var a = 'foo', b = 'bar', c = 42;
var o = {a, b, c};

// əvəzinə
var o = {a: a, b: b, c: c};
Sıra hərfləri
Əlavə məlumat üçün Array da baxın.

[1954, 1974, 1990, 2014]
Simli hərflər
Sətir hərfi sıfır və ya daha çox və ya ikiqat tirnoqla əlavə olunmuş Unicode kod nöqtələridir. Unicode kod nöqtələri də bir qaçış ardıcıllığı ilə təmsil oluna bilər. Bütün bağ nöqtələri sözün həqiqi kod nöqtələri istisna olmaqla hərfi mənada bir simli olaraq görünə bilər:

U + 005C \ (arxa cığır),
U + 000D <CR>,
və U + 000A <LF>.
Bütün JSON mətnini etibarlı ECMA-262, U + 2028 <LS> və U + 2029 <PS> etiketli etmək təklifindən əvvəl də simli hərflərdə görünməməsi qadağan edildi.

Hər hansı bir kod nöqtəsi qaçış ardıcıllığı şəklində görünə bilər. String hərfləri ECMAScript String dəyərlərini qiymətləndirir. Bu Sətir dəyərlərini yaradan zaman Unicode kod nöqtələri UTF-16 kodlanır.

'foo'
"bar"
Hexadecimal escape ardıcıllığı
Hexadecimal escape ardıcıllığı, 0x0000 ilə 0x00FF aralığında bir kod vahidi və ya kod nöqtəsini təmsil edən iki iki altıbucaqlı rəqəmin ardınca \ x ibarətdir.

'\ xA9' // "©"
Unicode qaçış ardıcıllığı
Unicode qaçış ardıcıllığı tam olaraq dörd altıbucaqlı rəqəmlərdən ibarətdir \ u. UTF-16 kodlaşdırmada bir kod vahidini təmsil edir. U + 0000 ilə U + FFFF kod nöqtələri üçün kod vahidi kod nöqtəsinə bərabərdir. U + 10000 ilə U + 10FFFF kod nöqtələri, xarakteri kodlamaq üçün istifadə olunan iki kod vahidini (bir surroqat cütü) təmsil edən iki qaçış ardıcıllığını tələb edir; surroqat cütlüyü kod nöqtəsindən fərqlidir.

Buna da baxın: String.fromCharCode ()String.prototype.charCodeAt ().

'\ u00A9' // "©" (U + A9)
Unicode kod nöqtəsi qaçır
Unicode kod nöqtəsindən qaçış \ u {, ardından altıbucaqlı bazada kod nöqtəsi, ardınca} daxil edilir. Altıbucaqlı rəqəmlərin dəyəri 0 ilə 0x10FFFF arasında olmalıdır. U + 10000 ilə U + 10FFFF arasındakı kod nöqtələrinin surroqat cütü kimi göstərilməsinə ehtiyac yoxdur. Kod nöqtələrinin qaçışları ECMAScript 2015 (ES6) -də JavaScript-ə əlavə edildi.

Buna da baxın: String.fromCodePoint ()String.prototype.codePointAt ().

'\ u {2F804}' // CJK uyğunluğu İDEOĞRAF-2F804 (U + 2F804)

// eyni xarakterli bir surroqat cütü olaraq təmsil olunur
'\ uD87E \ uDC04'
Daimi ifadə hərfi
Əlavə məlumat üçün RegExp də baxın.

/ ab + c / g

// Bir "boş" müntəzəm ifadə
// Boş tutmayan qrup lazımdır
// tək sətirli şərhlərlə qeyri-müəyyənliyə yol verməmək.
/ (?:) /
Şablon hərfləri
Daha çox məlumat üçün şablon iplərinə baxın.

`simli mətn`

`simli mətn xətti 1
 simli mətn xətti 2`

`string mətni $ {ifadə} simli mətn '

etiketli "string mətni $ {ifadə} string mətni"
Avtomatik nöqtəli vergül
Bəzi JavaScript ifadələri nöqtəli vergul ilə dayandırılmalı və buna görə də

avtomatik nöqtəli vergül daxil edilməsindən təsirləndi (ASI):

Boş bəyanat
qoy, const, dəyişən bir ifadə
idxal, ixrac, modul bəyannaməsi
İfadə ifadəsi
debugger
davam etmək, qırmaq, atmaq
qayıtmaq
ECMAScript spesifikasiyası nöqtəli vergül daxil edilməsinin üç qaydasını xatırladır.

1. Bir xətt terminatoru və ya "}" ilə qarşılaşdıqda, qrammatika tərəfindən icazə verilməyən nöqtələrə vergül qoyulur.

{1 2} 3

// ASI tərəfindən çevrilir

{1 2;} 3;
2. Ayələr giriş axınının sonu aşkar edildikdə və analizator bir giriş axını tam bir proqram olaraq təhlil edə bilmədikdə son nöqtəyə nöqtə qoyulur.

Burada ++ dəyişən b tətbiq olunan bir postfiks operatoru kimi qəbul edilmir, çünki b və ++ arasında bir xətt terminatoru meydana gəlir.

a = b
++ c

// ASI tərəfindən dəyişdirilir

a = b;
++ c;
3. Sonunda nöqtə vergül qoyulur, qrammatikada məhdud məhsullar olan bir söz bir xətt terminatoru izlədikdə. "Burada LineTerminator yoxdur" qaydaları olan bu ifadələr:

Postfiks İfadə (++ və -)
davam edin
fasilə
qayıtmaq
gəlir, gəlir *
modul
qayıtmaq
a + b

// ASI tərəfindən çevrilir

qayıtmaq;
a + b;
Texniki şərtlər
Xüsusiyyət
ECMAScript (ECMA-262)
The definition of 'Leksik qrammatika' in that specification.

Brauzer uyğunluğu
Bu səhifədəki uyğunluq cədvəli strukturlaşdırılmış məlumatlardan hazırlanmışdır. Verilənlərə töhfə vermək istəyirsinizsə, lütfən https://github.com/mdn/browser-compat-data-ya baxın və bizə bir sorğu göndərin.

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
Array literals ([1, 2, 3])Chrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 4Opera Full support 4Safari Full support 1WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 1Samsung Internet Android Full support 1.0nodejs Full support 0.1.100
Binary numeric literals (0b)Chrome Full support 41Edge Full support 12Firefox Full support 25IE No support NoOpera Full support 28Safari Full support 9WebView Android Full support 41Chrome Android Full support 41Firefox Android Full support 25Opera Android Full support 28Safari iOS Full support 9Samsung Internet Android Full support 4.0nodejs Full support 4.0.0
Full support 4.0.0
Full support 0.12
Disabled
Disabled From version 0.12: this feature is behind the --harmony runtime flag.
Boolean literals (true/false)Chrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 3Opera Full support 3Safari Full support 1WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 1Samsung Internet Android Full support 1.0nodejs Full support 0.1.100
Decimal numeric literals (1234567890)Chrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 3Opera Full support 3Safari Full support 1WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 1Samsung Internet Android Full support 1.0nodejs Full support 0.1.100
Hashbang (#!) comment syntax
Experimental
Chrome Full support 74Edge Full support 79Firefox Full support 67IE No support NoOpera Full support 62Safari No support NoWebView Android Full support 74Chrome Android Full support 74Firefox Android Full support 67Opera Android Full support 53Safari iOS No support NoSamsung Internet Android No support Nonodejs Full support 0.1.100
Hexadecimal escape sequences ('\0xA9')Chrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 4Opera Full support 4Safari Full support 1WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 1Samsung Internet Android Full support 1.0nodejs Full support 0.1.100
Hexadecimal numeric literals (0xAF)Chrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 3Opera Full support 3Safari Full support 1WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 1Samsung Internet Android Full support 1.0nodejs Full support 0.1.100
Null literal (null)Chrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 3Opera Full support 3Safari Full support 1WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 1Samsung Internet Android Full support 1.0nodejs Full support 0.1.100
Numeric separators (1_000_000_000_000)Chrome Full support 75Edge Full support 79Firefox Full support 70IE No support NoOpera Full support 62Safari Full support 13WebView Android Full support 75Chrome Android Full support 75Firefox Android No support NoOpera Android No support NoSafari iOS Full support 13Samsung Internet Android No support Nonodejs Full support 12.5.0
Full support 12.5.0
Full support 10.4.0
Disabled
Disabled From version 10.4.0: this feature is behind the --harmony runtime flag.
Octal numeric literals (0o)Chrome Full support 41Edge Full support 12Firefox Full support 25IE No support NoOpera Full support 28Safari Full support 9WebView Android Full support 41Chrome Android Full support 41Firefox Android Full support 25Opera Android Full support 28Safari iOS Full support 9Samsung Internet Android Full support 4.0nodejs Full support 4.0.0
Full support 4.0.0
Full support 0.12
Disabled
Disabled From version 0.12: this feature is behind the --harmony runtime flag.
Regular expression literals (/ab+c/g)Chrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 4Opera Full support 5Safari Full support 1WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 1Samsung Internet Android Full support 1.0nodejs Full support 0.1.100
String literals ('Hello world')Chrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 3Opera Full support 3Safari Full support 1WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 1Samsung Internet Android Full support 1.0nodejs Full support 0.1.100
Unicode escape sequences ('\u00A9')Chrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 4Opera Full support 4Safari Full support 1WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 1Samsung Internet Android Full support 1.0nodejs Full support 0.1.100
Unicode point escapes (\u{})Chrome Full support 44Edge Full support 12Firefox Full support 40IE No support NoOpera Full support 31Safari Full support 9WebView Android Full support 44Chrome Android Full support 44Firefox Android Full support 40Opera Android Full support 32Safari iOS Full support 9Samsung Internet Android Full support 4.0nodejs Full support 4.0.0
Shorthand notation for object literalsChrome Full support 43Edge Full support 12Firefox Full support 33IE No support NoOpera Full support 30Safari Full support 9WebView Android Full support 43Chrome Android Full support 43Firefox Android Full support 33Opera Android Full support 30Safari iOS Full support 9Samsung Internet Android Full support 4.0nodejs Full support 4.0.0
Template literalsChrome Full support 41Edge Full support 12Firefox Full support 34IE No support NoOpera Full support 28Safari Full support 9WebView Android Full support 41Chrome Android Full support 41Firefox Android Full support 34Opera Android Full support 28Safari iOS Full support 9Samsung Internet Android Full support 4.0nodejs Full support 4.0.0
Trailing commasChrome Full support 1Edge Full support 12Firefox Full support 1IE Full support 9Opera Full support 9.5Safari Full support 1WebView Android Full support 1Chrome Android Full support 18Firefox Android Full support 4Opera Android Full support 10.1Safari iOS Full support 1Samsung Internet Android Full support 1.0nodejs Full support 0.1.100

Legend

Full support  
Full support
No support  
No support
Experimental. Expect behavior to change in the future.
Experimental. Expect behavior to change in the future.
User must explicitly enable this feature.
User must explicitly enable this feature.

İcra Tərəqqi
Aşağıdakı cədvəl bu xüsusiyyət üçün gündəlik tətbiq statusunu təmin edir, çünki bu xüsusiyyət hələ brauzer sabitliyinə çatmamışdır. Verilənlər, Gecə qurulması və ya hər brauzerin JavaScript mühərrikinin son buraxılışı olan Test262, JavaScript standart test paketi ilə əlaqəli xüsusiyyət testlərini aparmaqla yaradılır.


Həmçinin bax
Jeff Walden: İkili və səkkizbucaqlı ədədlər
Mathias Bynens: JavaScript xarakter qaçış ardıcıllığı
Boolean
Sayı
RegExp
Sətir