जेएस ट्यूटोरियल

जेएस होम जे एस परिचय जे एस कहाँ करने के लिए जेएस आउटपुट जेएस स्टेटमेंट्स जेएस सिंटेक्स जे एस टिप्पणियाँ जेएस चर जे एस लेट जेएस कॉन्स्ट जेएस ऑपरेटर्स जे एस अंकगणित जेएस असाइनमेंट जेएस डेटा प्रकार जे एस कार्य जेएस ऑब्जेक्ट्स जेएस इवेंट्स जे एस स्ट्रिंग्स जे एस स्ट्रिंग तरीके जे एस स्ट्रिंग खोज जे एस स्ट्रिंग टेम्पलेट्स जेएस नंबर जेएस संख्या के तरीके जे एस सरणी जेएस सरणी के तरीके जेएस ऐरे सॉर्ट जेएस सरणी पुनरावृत्ति जेएस ऐरे कॉन्स्ट जे एस तिथियाँ जेएस तिथि प्रारूप जेएस तिथि प्राप्त करने के तरीके जे एस दिनांक सेट तरीके जे एस मठ जे एस रैंडम जे एस बूलियन्स जेएस तुलना जे एस शर्तें जे एस स्विच जेएस लूप फॉर In . के लिए JS लूप ओएफ के लिए जेएस लूप जेएस लूप जबकि जेएस ब्रेक जेएस Iterables जेएस सेट जेएस मैप्स जेएस टाइपोफ जे एस प्रकार रूपांतरण जेएस बिटवाइज जेएस रेगएक्सपी जे एस त्रुटियाँ जेएस स्कोप जे एस उत्थापन जेएस सख्त मोड जेएस यह कीवर्ड जेएस एरो फंक्शन जेएस क्लासेस जेएस JSON जेएस डिबगिंग जेएस स्टाइल गाइड जेएस सर्वोत्तम अभ्यास जेएस गलतियाँ जेएस प्रदर्शन जेएस आरक्षित शब्द

जेएस संस्करण

जेएस संस्करण जेएस 2009 (ES5) जेएस 2015 (ईएस6) जेएस 2016 जेएस 2017 जेएस 2018 जेएस आईई / एज जेएस इतिहास

जेएस ऑब्जेक्ट्स

वस्तु परिभाषाएँ वस्तु गुण वस्तु के तरीके वस्तु प्रदर्शन ऑब्जेक्ट एक्सेसर्स वस्तु निर्माता वस्तु प्रोटोटाइप वस्तु पुनरावर्तनीय वस्तु समूह वस्तु मानचित्र वस्तु संदर्भ

जे एस कार्य

फ़ंक्शन परिभाषाएँ फंक्शन पैरामीटर्स समारोह आमंत्रण फंक्शन कॉल समारोह लागू करें फंक्शन क्लोजर

जेएस क्लासेस

कक्षा परिचय वर्ग वंशानुक्रम क्लास स्टेटिक

जे एस एसिंक

जेएस कॉलबैक जे एस अतुल्यकालिक जे एस वादा जे एस एसिंक/प्रतीक्षा

जेएस एचटीएमएल डोम

डोम परिचय डोम तरीके डोम दस्तावेज़ डोम तत्व डोम एचटीएमएल डोम फॉर्म डोम सीएसएस डोम एनिमेशन डोम घटनाक्रम डोम इवेंट श्रोता डोम नेविगेशन डोम नोड्स डोम संग्रह डोम नोड सूचियाँ

जेएस ब्राउज़र बीओएम

जेएस विंडो जेएस स्क्रीन जेएस स्थान जेएस इतिहास जेएस नेविगेटर जेएस पॉपअप अलर्ट जेएस टाइमिंग जे एस कुकीज़

जेएस वेब एपीआई

वेब एपीआई परिचय वेब फॉर्म एपीआई वेब इतिहास एपीआई वेब संग्रहण API वेब वर्कर एपीआई वेब फ़ेच एपीआई वेब जियोलोकेशन एपीआई

जे एस अजाक्स

AJAX परिचय अजाक्स एक्सएमएलएचटीपी अजाक्स अनुरोध अजाक्स प्रतिक्रिया अजाक्स एक्सएमएल फ़ाइल अजाक्स पीएचपी अजाक्स एएसपी AJAX डेटाबेस अजाक्स अनुप्रयोग अजाक्स उदाहरण

जेएस JSON

JSON परिचय JSON सिंटैक्स जेएसओएन बनाम एक्सएमएल JSON डेटा प्रकार JSON पार्स JSON स्ट्रिंगिफ़ाई JSON ऑब्जेक्ट्स JSON सरणियाँ JSON सर्वर जेएसओएन पीएचपी जेएसओएन एचटीएमएल जेएसओएन जेएसओएनपी

जेएस बनाम jQuery

jQuery चयनकर्ता jQuery एचटीएमएल jQuery सीएसएस jQuery डोम

जेएस ग्राफिक्स

जेएस ग्राफिक्स जेएस कैनवास जे एस प्लॉटली जेएस चार्ट.जेएस जेएस गूगल चार्ट जेएस डी3.जेएस

जेएस उदाहरण

जेएस उदाहरण जेएस एचटीएमएल डोम जेएस एचटीएमएल इनपुट जेएस एचटीएमएल ऑब्जेक्ट्स जेएस एचटीएमएल इवेंट्स जेएस ब्राउज़र जे एस संपादक जे एस व्यायाम जे एस प्रश्नोत्तरी जेएस प्रमाणपत्र

जे एस संदर्भ

जावास्क्रिप्ट ऑब्जेक्ट्स एचटीएमएल डोम ऑब्जेक्ट्स


जावास्क्रिप्ट सख्त उपयोग करें


"use strict";परिभाषित करता है कि जावास्क्रिप्ट कोड को "सख्त मोड" में निष्पादित किया जाना चाहिए।


"सख्त उपयोग करें" निर्देश

"use strict"ईसीएमएस्क्रिप्ट संस्करण 5 में निर्देश नया था

यह एक कथन नहीं है, बल्कि एक शाब्दिक अभिव्यक्ति है, जिसे जावास्क्रिप्ट के पुराने संस्करणों द्वारा अनदेखा किया गया है।

इसका उद्देश्य "use strict"यह इंगित करना है कि कोड को "सख्त मोड" में निष्पादित किया जाना चाहिए।

सख्त मोड के साथ, उदाहरण के लिए, आप अघोषित चर का उपयोग नहीं कर सकते।

सभी आधुनिक ब्राउज़र इंटरनेट एक्सप्लोरर 9 और निम्न को छोड़कर "सख्त उपयोग करें" का समर्थन करते हैं:

Directive
"use strict" 13.0 10.0 4.0 6.0 12.1

तालिका में संख्याएं पहले ब्राउज़र संस्करण को निर्दिष्ट करती हैं जो पूरी तरह से निर्देश का समर्थन करता है।

आप अपने सभी कार्यक्रमों में सख्त मोड का उपयोग कर सकते हैं। यह आपको क्लीनर कोड लिखने में मदद करता है, जैसे आपको अघोषित चर का उपयोग करने से रोकना।

"use strict"सिर्फ एक स्ट्रिंग है, इसलिए IE 9 एक त्रुटि नहीं फेंकेगा, भले ही वह इसे न समझे।


सख्त मोड घोषित करना

"सख्त उपयोग करें" जोड़कर सख्त मोड घोषित किया गया है ; किसी स्क्रिप्ट या फ़ंक्शन की शुरुआत में।

एक स्क्रिप्ट की शुरुआत में घोषित, इसका वैश्विक दायरा है (स्क्रिप्ट में सभी कोड सख्त मोड में निष्पादित होंगे):

उदाहरण

"use strict";
x = 3.14;       // This will cause an error because x is not declared

उदाहरण

"use strict";
myFunction();

function myFunction() {
  y = 3.14;   // This will also cause an error because y is not declared
}

किसी फ़ंक्शन के अंदर घोषित, इसका स्थानीय दायरा है (केवल फ़ंक्शन के अंदर कोड सख्त मोड में है):

x = 3.14;       // This will not cause an error.
myFunction();

function myFunction() {
  "use strict";
  y = 3.14;   // This will cause an error
}


"सख्त उपयोग"; वाक्य - विन्यास

सख्त मोड घोषित करने के लिए सिंटैक्स, जावास्क्रिप्ट के पुराने संस्करणों के साथ संगत होने के लिए डिज़ाइन किया गया था।

एक जावास्क्रिप्ट प्रोग्राम में एक संख्यात्मक शाब्दिक (4 + 5;) या एक स्ट्रिंग अक्षर ("जॉन डो";) को संकलित करने से कोई दुष्प्रभाव नहीं होता है। यह बस एक गैर-मौजूदा चर के लिए संकलित करता है और मर जाता है।

तो "use strict";केवल नए संकलक के लिए मायने रखता है जो इसका अर्थ "समझते" हैं।


सख्त मोड क्यों?

सख्त मोड "सुरक्षित" जावास्क्रिप्ट लिखना आसान बनाता है।

सख्त मोड पहले स्वीकृत "खराब सिंटैक्स" को वास्तविक त्रुटियों में बदल देता है।

एक उदाहरण के रूप में, सामान्य जावास्क्रिप्ट में, एक चर नाम को गलत टाइप करने से एक नया वैश्विक चर बन जाता है। सख्त मोड में, यह एक त्रुटि फेंक देगा, जिससे गलती से वैश्विक चर बनाना असंभव हो जाएगा।

सामान्य जावास्क्रिप्ट में, एक डेवलपर को गैर-लिखने योग्य गुणों को मान निर्दिष्ट करते हुए कोई त्रुटि प्रतिक्रिया प्राप्त नहीं होगी।

सख्त मोड में, एक गैर-लिखने योग्य संपत्ति, एक गेटटर-केवल संपत्ति, एक गैर-मौजूदा संपत्ति, एक गैर-मौजूदा चर, या एक गैर-मौजूदा वस्तु के लिए कोई असाइनमेंट, एक त्रुटि फेंक देगा।


सख्त मोड में अनुमति नहीं है

घोषित किए बिना, एक चर का उपयोग करने की अनुमति नहीं है:

"use strict";
x = 3.14;                // This will cause an error

वस्तुएँ भी चर हैं।

किसी वस्तु को घोषित किए बिना उसका उपयोग करने की अनुमति नहीं है:

"use strict";
x = {p1:10, p2:20};      // This will cause an error

एक चर (या वस्तु) को हटाने की अनुमति नहीं है।

"use strict";
let x = 3.14;
delete x;                // This will cause an error

किसी फ़ंक्शन को हटाने की अनुमति नहीं है।

"use strict";
function x(p1, p2) {};
delete x;                // This will cause an error 

पैरामीटर नाम को डुप्लिकेट करने की अनुमति नहीं है:

"use strict";
function x(p1, p1) {};   // This will cause an error

अष्टक अंकीय अक्षर की अनुमति नहीं है:

"use strict";
let x = 010;             // This will cause an error

ऑक्टल एस्केप वर्णों की अनुमति नहीं है:

"use strict";
let x = "\010";            // This will cause an error

केवल-पढ़ने के लिए संपत्ति को लिखने की अनुमति नहीं है:

"use strict";
const obj = {};
Object.defineProperty(obj, "x", {value:0, writable:false});

obj.x = 3.14;            // This will cause an error

केवल-प्राप्त संपत्ति को लिखने की अनुमति नहीं है:

"use strict";
const obj = {get x() {return 0} };

obj.x = 3.14;            // This will cause an error

एक न हटाने योग्य संपत्ति को हटाने की अनुमति नहीं है:

"use strict";
delete Object.prototype; // This will cause an error

शब्द evalका उपयोग चर के रूप में नहीं किया जा सकता है:

"use strict";
let eval = 3.14;         // This will cause an error

शब्द argumentsका उपयोग चर के रूप में नहीं किया जा सकता है:

"use strict";
let arguments = 3.14;    // This will cause an error

withबयान की अनुमति नहीं है :

"use strict";
with (Math){x = cos(2)}; // This will cause an error

सुरक्षा कारणों से, eval()उस क्षेत्र में चर बनाने की अनुमति नहीं है जहां से इसे बुलाया गया था:

"use strict";
eval ("let x = 2");
alert (x);             // This will cause an error

फ़ंक्शन में thisकीवर्ड सख्त मोड में अलग तरह से व्यवहार करता है।

कीवर्ड उस thisऑब्जेक्ट को संदर्भित करता है जिसे फ़ंक्शन कहा जाता है।

यदि ऑब्जेक्ट निर्दिष्ट नहीं है, तो सख्त मोड में फ़ंक्शन वापस आ जाएगा undefinedऔर सामान्य मोड में फ़ंक्शन वैश्विक ऑब्जेक्ट (विंडो) लौटाएगा:

"use strict";
function myFunction() {
  alert(this); // will alert "undefined"
}
myFunction();


भविष्य दृढ़!

भविष्य के जावास्क्रिप्ट संस्करणों के लिए आरक्षित खोजशब्दों को सख्त मोड में चर नामों के रूप में उपयोग नहीं किया जा सकता है।

ये:

  • औजार
  • इंटरफेस
  • होने देना
  • पैकेज
  • निजी
  • संरक्षित
  • जनता
  • स्थिर
  • उपज
"use strict";
let public = 1500;      // This will cause an error

ध्यान रहें!

"सख्त उपयोग करें" निर्देश केवल एक स्क्रिप्ट या फ़ंक्शन की शुरुआत में पहचाना जाता है।