मैं "सख्त उपयोग" प्राप्त करने की कोशिश कर रहा हूं; काम करने के लिए निर्देश, और कुछ परेशानी है। निम्न फ़ाइल में फ़ायरफ़ॉक्स 9 (सही ढंग से) पता लगाएगा कि कुछ वारा लाइन 3 पर घोषित नहीं किया गया है, लेकिन यह पता लगाने में विफल रहता है कि 1 को लाइन 1 पर घोषित नहीं किया गया है। मुझे लगता है कि यह मामला क्यों होगा।क्यों "सख्त" (जावास्क्रिप्ट) का उपयोग एक अविकसित चर का पता नहीं लगाता है?
"use strict"; // this will cause the browser to check for errors more aggresively
someVar = 10; // this DOES get caught // LINE 3
// debugger; // this will cause FireBug to open at the bottom of the page/window
// it will also cause the debugger to stop at this line
// Yep, using jQuery & anonymous functions
$(document).ready(function(){
alert("document is done loading, but not (necessarily) the images!");
$("#btnToClick").click(function() {
alert("About to stop");
var aVariable = 1;
debugger; // stop here!
alert("post stop " + aVariable);
// this lacks a "var" declaration:
theVar = 10; // LINE 19 // this is NOT getting caught
// needs a closing "
// alert("hi);
console.log("Program is printing information to help the developer debug a problem!");
});
});
एक sidenote के रूप में, एक संपादक का उपयोग करके जो आपके लिटर के माध्यम से आपके कोड का विश्लेषण करने में सक्षम है, इन त्रुटियों को संपादित करने में समय लगेगा। व्यक्तिगत रूप से, मैं सब्लिमे टेक्स्ट 2 का उपयोग करता हूं जो सब्लिमेलिंटर के साथ संयुक्त है JSHint http://www.jshint.com/ –
पागल द्वारा रिपोर्ट की गई त्रुटियों को हाइलाइट करता है! मैं कसम खाता हूं कि मैंने वास्तव में कई बार कोशिश की और फायरबग से जो कुछ भी हो, उसे कोई त्रुटि नहीं मिली। मैं वापस गया और इसे फिर से कोशिश की और अब मुझे फ़ायरबग कंसोल में त्रुटि की सूचना दी जा रही है (लेकिन केवल क्लिक होने पर)। जेएसलिंट एक पास में इसकी रिपोर्ट करता है (यानी, विधि को लागू करने की प्रतीक्षा किए बिना)। धन्यवाद! – MikeTheTall
आप उत्तर में पार्स समय और रनटाइम त्रुटि रिपोर्टिंग के बीच अंतर को इंगित कर सकते हैं। यहां खेलने पर यह महत्वपूर्ण अवधारणा है। – wewals