2012-09-25 14 views
5

क्याअंतर लेखन त्रुटि और ReferenceError

TypeError: ... is undefined 

और

ReferenceError: ... is not defined 

बीच differnce है?

+0

ईसीएमएस्क्रिप्ट मानक परिभाषित करता है कि प्रत्येक त्रुटि प्रकार किस परिदृश्य में होता है। [यहां देखें] (http://ecma-international.org/ecma-262/5.1/#sec-15.11.6.3) इन परिदृश्यों की पूरी सूची के लिए। –

+0

क्या आप कोड उदाहरण प्रदान कर सकते हैं जो इन त्रुटियों को फेंक देते हैं? –

उत्तर

10

ReferenceError तब होता है जब आप एक चर का उपयोग करने का प्रयास करते हैं जो बिल्कुल मौजूद नहीं है।

TypeError तब होता है जब चर मौजूद होता है, लेकिन जिस ऑपरेशन को आप करने का प्रयास कर रहे हैं वह उस प्रकार के मान के लिए उचित नहीं है। ऐसे मामले में जहां विस्तृत संदेश कहता है "परिभाषित नहीं किया गया है", यह तब हो सकता है जब आपके पास एक वेरिएबल है जिसका मान विशेष undefined मान है, और आप इसकी एक संपत्ति तक पहुंचने का प्रयास करते हैं।

इससे संबंधित कुछ चर्चाओं के लिए http://javascriptweblog.wordpress.com/2010/08/16/understanding-undefined-and-preventing-referenceerrors/ देखें।

7

छह JavaScript त्रुटि प्रकार

जावास्क्रिप्ट 1.5 विनिर्देश छह प्राथमिक त्रुटि प्रकारों को परिभाषित करता है, इस प्रकार है:

EvalError: उठाया जब eval() फ़ंक्शन गलत तरीके से प्रयोग किया जाता है।

रेंजरर: जब कोई संख्यात्मक चर इसकी अनुमत सीमा से अधिक हो जाता है तब उठाया जाता है।

संदर्भ त्रुटि: जब कोई अमान्य संदर्भ उपयोग किया जाता है तब उठाया जाता है।

सिंटेक्स त्रुटि: जब जावास्क्रिप्ट कोड पार्स करते समय एक वाक्यविन्यास त्रुटि उत्पन्न होती है तब उठाया जाता है।

टाइप एरर: जब एक चर के प्रकार की अपेक्षा की जाती है तब उठाया जाता है।

मजबूत पाठ URIError: उठाया जब encodeURI() या decodeURI() कार्यों गलत तरीके से किया जाता है।

3

निम्नलिखित कोड पर विचार करें:

function foo(){ 
var d=1234; 
console.log(d.substring(1,2));  
} 
foo(); 

यह निम्न होगा उत्पादन:

अपवाद: लेखन त्रुटि: d.substring एक समारोह इसका कारण यह है कि हम गलत प्रकार (संख्या) का इस्तेमाल किया है नहीं है किसी दिए गए ऑपरेशन के लिए (स्ट्रिंग जो स्ट्रिंग की अपेक्षा करता है)। TypeError ऑब्जेक्ट एक त्रुटि का प्रतिनिधित्व करता है जब मान अपेक्षित प्रकार का नहीं होता है।

function foo(){ 
var d=1234; 
console.log(c); 
} 
foo(); 

यह निम्न होगा उत्पादन:

अपवाद: ReferenceError: ग इसका कारण यह है चर 'सी' के लिए संदर्भ या तो स्थानीय या वैश्विक क्षेत्र में मौजूद नहीं है है परिभाषित नहीं है और हम अभी भी कर रहे हैं इसका उपयोग करने की कोशिश कर रहा है। जब एक गैर-मौजूद चर का उपयोग किया जाता है तो एक संदर्भ त्रुटि अपवाद फेंक दिया जाता है।