खोज…
परिचय
आरक्षित खोजशब्द
जावास्क्रिप्ट में आरक्षित खोजशब्दों का पूर्वनिर्धारित संग्रह है जिसे आप चर, लेबल या फ़ंक्शन नामों के रूप में उपयोग नहीं कर सकते।
ECMAScript 1
| ए - ई | ई - आर | एस - जेड |
|---|---|---|
break | export | super |
case | extends | switch |
catch | false | this |
class | finally | throw |
const | for | true |
continue | function | try |
debugger | if | typeof |
default | import | var |
delete | in | void |
do | new | while |
else | null | with |
enum | return |
ECMAScript 2
24 अतिरिक्त आरक्षित कीवर्ड जोड़े। (बोल्ड में नया जोड़)।
| ए एफ | एफ - पी | पी - जेड |
|---|---|---|
abstract | final | public |
boolean | finally | return |
break | float | short |
byte | for | static |
case | function | super |
catch | goto | switch |
char | if | synchronized |
class | implements | this |
const | import | throw |
continue | in | throws |
debugger | instanceof | transient |
default | int | true |
delete | interface | try |
do | long | typeof |
double | native | var |
else | new | void |
enum | null | volatile |
export | package | while |
extends | private | with |
false | protected |
ECMAScript 5 / 5.1
ECMAScript 3 के बाद से कोई बदलाव नहीं हुआ था।
ECMAScript 5 ने int , byte , char , goto , long , final , float , short , double , native , throws , boolean , abstract , volatile , transient और synchronized हटा दिया; यह जोड़ा let और yield ।
| ए एफ | एफ - पी | पी - जेड |
|---|---|---|
break | finally | public |
case | for | return |
catch | function | static |
class | if | super |
const | implements | switch |
continue | import | this |
debugger | in | throw |
default | instanceof | true |
delete | interface | try |
do | let | typeof |
else | new | var |
enum | null | void |
export | package | while |
extends | private | with |
false | protected | yield |
implements,let,private,public,interface,package,protected,staticऔरyieldकेवल सख्त मोड में अस्वीकृत हैं।
evalऔरargumentsआरक्षित शब्द नहीं हैं, लेकिन वे इसे सख्त मोड में पसंद करते हैं।
ECMAScript 6 / ECMAScript 2015
| ए - ई | ई - आर | एस - जेड |
|---|---|---|
break | export | super |
case | extends | switch |
catch | finally | this |
class | for | throw |
const | function | try |
continue | if | typeof |
debugger | import | var |
default | in | void |
delete | instanceof | while |
do | new | with |
else | return | yield |
भविष्य के आरक्षित खोजशब्द
निम्नलिखित ECMAScript विनिर्देश द्वारा भविष्य के कीवर्ड के रूप में आरक्षित हैं। वर्तमान में उनकी कोई विशेष कार्यक्षमता नहीं है, लेकिन वे भविष्य के कुछ समय पर हो सकते हैं, इसलिए उन्हें पहचानकर्ता के रूप में उपयोग नहीं किया जा सकता है।
enum |
निम्नलिखित केवल तभी आरक्षित होते हैं जब वे सख्त मोड कोड में पाए जाते हैं:
implements | package | public |
interface | private | `स्थिर ' |
let | protected |
पुराने मानकों में भविष्य के आरक्षित कीवर्ड
निम्नलिखित भविष्य के कीवर्ड के रूप में पुराने ECMAScript विनिर्देशों (ECMAScript 1 को 3 तक) द्वारा आरक्षित किया जाता है।
abstract | float | short |
boolean | goto | synchronized |
byte | instanceof | throws |
char | int | transient |
double | long | volatile |
final | native |
इसके अतिरिक्त, ECMAScript में पहचानकर्ता के रूप में शाब्दिक अशक्त, सत्य और असत्य का उपयोग नहीं किया जा सकता है।
पहचानकर्ता और पहचानकर्ता नाम
आरक्षित शब्दों के संबंध में चर या फ़ंक्शन नामों की पसंद के लिए उपयोग किए जाने वाले "पहचानकर्ता" के बीच एक छोटा सा अंतर होता है और "पहचानकर्ता नाम" को समग्र डेटा प्रकारों के गुणों के रूप में अनुमति दी जाती है।
उदाहरण के लिए निम्नलिखित में एक अवैध वाक्यविन्यास त्रुटि होगी:
var break = true;
अनकांशस सिन्टैक्सेर: अनपेक्षित टोकन ब्रेक
हालाँकि नाम को एक वस्तु की संपत्ति के रूप में वैध माना जाता है (ECMAScript 5+ के अनुसार):
var obj = {
break: true
};
console.log(obj.break);
इस उत्तर से उद्धरण के लिए:
ECMAScript® 5.1 भाषा विशिष्टता से :
खंड 7.6
पहचानकर्ता नाम कुछ छोटे संशोधनों के साथ यूनिकोड मानक के अध्याय 5 के "पहचानकर्ता" खंड में दिए गए व्याकरण के अनुसार व्याख्या किए गए टोकन हैं। एक
Identifierएक हैIdentifierNameहै कि एक नहीं हैReservedWord(देखें 7.6.1 )।
वाक्य - विन्यास
Identifier :: IdentifierName but not ReservedWord
विनिर्देशन द्वारा, एक ReservedWord है:
धारा 7.6.1
एक आरक्षित शब्द एक है
IdentifierNameहै कि एक के रूप में इस्तेमाल नहीं किया जा सकताIdentifier।ReservedWord :: Keyword FutureReservedWord NullLiteral BooleanLiteral
इसमें कीवर्ड, भविष्य के कीवर्ड, null और बूलियन शाब्दिक शामिल हैं। खोजशब्दों की पूरी सूची खंड 7.6.1 में है और शाब्दिक धारा 7.8 में हैं ।
उपरोक्त (धारा 7.6) का तात्पर्य है कि IdentifierName s को ReservedWord किया जा सकता है, और ऑब्जेक्ट आरंभीकरण के लिए विनिर्देशन से:
धारा 11.1.5
वाक्य - विन्यास
ObjectLiteral : { } { PropertyNameAndValueList } { PropertyNameAndValueList , }
PropertyName कहां है, विनिर्देश द्वारा:
PropertyName : IdentifierName StringLiteral NumericLiteral
आप देख सकते हैं, एक PropertyName एक हो सकता है IdentifierName , इस प्रकार की अनुमति के ReservedWord रों होने की PropertyName रों। यही कारण है कि अंतिम तौर हमें बताता है कि, विनिर्देश के द्वारा, यह है करने के लिए अनुमति दी है ReservedWord के रूप में इस तरह के class और var के रूप में PropertyName रों सिर्फ स्ट्रिंग शाब्दिक या संख्यात्मक शाब्दिक तरह गैर उद्धृत।
अधिक पढ़ने के लिए, खंड 7.6 - पहचानकर्ता नाम और पहचानकर्ता देखें।
नोट: इस उदाहरण में वाक्यविन्यास हाइलाइटर ने आरक्षित शब्द को देखा है और फिर भी इसे उजागर किया है। जबकि उदाहरण वैध है जावास्क्रिप्ट डेवलपर्स कुछ संकलक / ट्रांसपिलर, लाइनर और मिनिफायर टूल द्वारा पकड़े जा सकते हैं जो अन्यथा तर्क देते हैं।