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

जेएस होम जे एस परिचय जे एस कहाँ करने के लिए जेएस आउटपुट जेएस स्टेटमेंट्स जेएस सिंटेक्स जे एस टिप्पणियाँ जेएस चर जे एस लेट जेएस कॉन्स्ट जेएस ऑपरेटर्स जे एस अंकगणित जेएस असाइनमेंट जेएस डेटा प्रकार जे एस कार्य जेएस ऑब्जेक्ट्स जेएस इवेंट्स जे एस स्ट्रिंग्स जे एस स्ट्रिंग तरीके जे एस स्ट्रिंग खोज जे एस स्ट्रिंग टेम्पलेट्स जेएस नंबर जेएस संख्या के तरीके जे एस सरणी जेएस सरणी के तरीके जेएस ऐरे सॉर्ट जेएस सरणी पुनरावृत्ति जेएस ऐरे कॉन्स्ट जे एस तिथियाँ जेएस तिथि प्रारूप जेएस तिथि प्राप्त करने के तरीके JS दिनांक सेट विधियाँ जे एस मठ जे एस रैंडम जे एस बूलियन्स जेएस तुलना जे एस शर्तें जे एस स्विच जेएस लूप फॉर 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.जेएस

जेएस उदाहरण

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

जे एस संदर्भ

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


जावास्क्रिप्ट सर्वोत्तम अभ्यास


वैश्विक चर से बचें, बचें new, बचें ==, बचेंeval()


वैश्विक चर से बचें

वैश्विक चर का उपयोग कम से कम करें।

इसमें सभी डेटा प्रकार, ऑब्जेक्ट और फ़ंक्शन शामिल हैं।

वैश्विक चर और कार्यों को अन्य लिपियों द्वारा अधिलेखित किया जा सकता है।

इसके बजाय स्थानीय चर का उपयोग करें, और सीखें कि क्लोजर का उपयोग कैसे करें ।


हमेशा स्थानीय चर घोषित करें

किसी फ़ंक्शन में उपयोग किए जाने वाले सभी चर को स्थानीय चर के रूप में घोषित किया जाना चाहिए

स्थानीय चरों को कीवर्ड या कीवर्ड, या कीवर्ड के साथ घोषित किया जाना चाहिए , अन्यथा वे वैश्विक चर बन जाएंगे।varletconst

सख्त मोड अघोषित चर की अनुमति नहीं देता है।


शीर्ष पर घोषणाएं

सभी घोषणाओं को प्रत्येक स्क्रिप्ट या फ़ंक्शन के शीर्ष पर रखना एक अच्छा कोडिंग अभ्यास है।

यह करेगा:

  • क्लीनर कोड दें
  • स्थानीय चर देखने के लिए एक ही स्थान प्रदान करें
  • अवांछित (अंतर्निहित) वैश्विक चर से बचना आसान बनाएं
  • अवांछित पुन: घोषणाओं की संभावना को कम करें
// Declare at the beginning
let firstName, lastName, price, discount, fullPrice;

// Use later
firstName = "John";
lastName = "Doe";

price = 19.90;
discount = 0.10;

fullPrice = price - discount;

यह लूप चर के लिए भी जाता है:

for (let i = 0; i < 5; i++) {


वैरिएबल को इनिशियलाइज़ करें

जब आप उन्हें घोषित करते हैं तो वेरिएबल्स को इनिशियलाइज़ करना एक अच्छा कोडिंग अभ्यास है।

यह करेगा:

  • क्लीनर कोड दें
  • चर प्रारंभ करने के लिए एक ही स्थान प्रदान करें
  • अपरिभाषित मानों से बचें
// Declare and initiate at the beginning
let firstName = "",
let lastName = "",
let price = 0,
let discount = 0,
let fullPrice = 0,
const myArray = [],
const myObject = {};

प्रारंभिक चर इच्छित उपयोग (और इच्छित डेटा प्रकार) का एक विचार प्रदान करते हैं।


const . के साथ ऑब्जेक्ट घोषित करें

वस्तुओं को कॉन्स के साथ घोषित करने से किसी भी प्रकार के आकस्मिक परिवर्तन को रोका जा सकेगा:

उदाहरण

let car = {type:"Fiat", model:"500", color:"white"};
car = "Fiat";      // Changes object to string

const car = {type:"Fiat", model:"500", color:"white"};
car = "Fiat";      // Not possible

const . के साथ Arrays घोषित करें

कॉन्स के साथ सरणियों की घोषणा करने से किसी भी प्रकार के आकस्मिक परिवर्तन को रोका जा सकेगा:

उदाहरण

let cars = ["Saab", "Volvo", "BMW"];
cars = 3;    // Changes array to number

const cars = ["Saab", "Volvo", "BMW"];
cars = 3;    // Not possible

नई वस्तु का प्रयोग न करें ()

  • ""के बजाय प्रयोग करेंnew String()
  • 0के बजाय प्रयोग करेंnew Number()
  • falseके बजाय प्रयोग करेंnew Boolean()
  • {}के बजाय प्रयोग करेंnew Object()
  • []के बजाय प्रयोग करेंnew Array()
  • /()/के बजाय प्रयोग करेंnew RegExp()
  • function (){}के बजाय प्रयोग करेंnew Function()

उदाहरण

let x1 = "";             // new primitive string
let x2 = 0;              // new primitive number
let x3 = false;          // new primitive boolean
const x4 = {};           // new object
const x5 = [];           // new array object
const x6 = /()/;         // new regexp object
const x7 = function(){}; // new function object

स्वचालित प्रकार के रूपांतरणों से सावधान रहें

जावास्क्रिप्ट शिथिल टाइप किया गया है।

एक चर में सभी डेटा प्रकार हो सकते हैं।

एक चर अपना डेटा प्रकार बदल सकता है:

उदाहरण

let x = "Hello";     // typeof x is a string
x = 5;               // changes typeof x to a number

सावधान रहें कि संख्याओं को गलती से स्ट्रिंग्स या NaN(नंबर नहीं) में परिवर्तित किया जा सकता है।

गणितीय संचालन करते समय, जावास्क्रिप्ट संख्याओं को स्ट्रिंग्स में बदल सकता है:

उदाहरण

let x = 5 + 7;       // x.valueOf() is 12,  typeof x is a number
let x = 5 + "7";     // x.valueOf() is 57,  typeof x is a string
let x = "5" + 7;     // x.valueOf() is 57,  typeof x is a string
let x = 5 - 7;       // x.valueOf() is -2,  typeof x is a number
let x = 5 - "7";     // x.valueOf() is -2,  typeof x is a number
let x = "5" - 7;     // x.valueOf() is -2,  typeof x is a number
let x = 5 - "x";     // x.valueOf() is NaN, typeof x is a number

एक स्ट्रिंग से एक स्ट्रिंग घटाना, कोई त्रुटि उत्पन्न नहीं करता है, लेकिन रिटर्न NaN(संख्या नहीं):

उदाहरण

"Hello" - "Dolly"    // returns NaN

=== तुलना का प्रयोग करें

==तुलना ऑपरेटर हमेशा तुलना से पहले (मिलान प्रकारों में) कनवर्ट करता है

===ऑपरेटर मूल्यों और प्रकार की तुलना करने के लिए बाध्य करता है:

उदाहरण

0 == "";        // true
1 == "1";       // true
1 == true;      // true

0 === "";       // false
1 === "1";      // false
1 === true;     // false

पैरामीटर डिफ़ॉल्ट का उपयोग करें

यदि किसी फ़ंक्शन को लापता तर्क के साथ बुलाया जाता है, तो लापता तर्क का मान पर सेट होता है undefined

अपरिभाषित मान आपके कोड को तोड़ सकते हैं। तर्कों के लिए डिफ़ॉल्ट मान निर्दिष्ट करना एक अच्छी आदत है।

उदाहरण

function myFunction(x, y) {
  if (y === undefined) {
    y = 0;
  }
}

ईसीएमएस्क्रिप्ट 2015 फ़ंक्शन परिभाषा में डिफ़ॉल्ट पैरामीटर की अनुमति देता है:

function (a=1, b=1) { /*function code*/ }

फ़ंक्शन पैरामीटर्स पर फ़ंक्शन पैरामीटर और तर्कों के बारे में और पढ़ें


डिफ़ॉल्ट के साथ अपने स्विच समाप्त करें

switchअपने कथनों को हमेशा a से समाप्त करें defaultभले ही आपको लगे कि इसकी कोई जरूरत नहीं है।

उदाहरण

switch (new Date().getDay()) {
  case 0:
    day = "Sunday";
    break;
  case 1:
    day = "Monday";
    break;
  case 2:
    day = "Tuesday";
    break;
  case 3:
    day = "Wednesday";
    break;
  case 4:
    day = "Thursday";
    break;
  case 5:
    day = "Friday";
    break;
  case 6:
    day = "Saturday";
    break;
  default:
    day = "Unknown";
}

वस्तुओं के रूप में संख्या, स्ट्रिंग और बूलियन से बचें

हमेशा संख्याओं, स्ट्रिंग्स या बूलियन्स को आदिम मान के रूप में मानें। वस्तुओं के रूप में नहीं।

इन प्रकारों को वस्तुओं के रूप में घोषित करना, निष्पादन की गति को धीमा कर देता है, और बुरा दुष्प्रभाव पैदा करता है:

उदाहरण

let x = "John";             
let y = new String("John");
(x === y) // is false because x is a string and y is an object.

या इससे भी बदतर:

उदाहरण

let x = new String("John");             
let y = new String("John");
(x == y) // is false because you cannot compare objects.

eval का उपयोग करने से बचें ()

फ़ंक्शन का eval()उपयोग टेक्स्ट को कोड के रूप में चलाने के लिए किया जाता है। लगभग सभी मामलों में, इसका उपयोग करना आवश्यक नहीं होना चाहिए।

क्योंकि यह मनमाने कोड को चलाने की अनुमति देता है, यह एक सुरक्षा समस्या का भी प्रतिनिधित्व करता है।