जवाबों:
'use strict';
रैपिंग फ़ंक्शन में पहले कथन के रूप में शामिल करें , इसलिए यह केवल उस फ़ंक्शन को प्रभावित करता है। यह उन समस्याओं को रोकता है जब स्क्रिप्ट को सख्त नहीं किया जाता है।
देखें डगलस क्रॉकफोर्ड का नवीनतम ब्लॉग पोस्ट स्ट्रिक्ट मोड इज़ कमिंग टू टाउन ।
उस पोस्ट से उदाहरण:
(function () {
'use strict';
// this function is strict...
}());
(function () {
// but this function is sloppy...
}());
अद्यतन: यदि आप तत्काल कार्य में लिपटना नहीं चाहते हैं (उदाहरण के लिए यह एक नोड मॉड्यूल है), तो आप चेतावनी को अक्षम कर सकते हैं।
के लिए JSLint (प्रति Zhami ):
/*jslint node: true */
के लिए JSHint :
/*jshint strict:false */
या (प्रति लाथ शदीद )
/* jshint -W097 */
JSHint से किसी भी मनमानी चेतावनी को अक्षम करने के लिए, JSHint स्रोत कोड ( डॉक्स में विवरण ) में नक्शे की जाँच करें ।
अद्यतन 2: JSHintnode:boolean
विकल्प का समर्थन करता है। .jshintrc
जीथूब को देखें ।
/* jshint node: true */
-1
/*jshint strict:false */
, यह स्पष्ट करने के लिए कि आप क्या कर रहे हैं (जब तक कि आपके संख्यात्मक कोड का कोई विशेष लाभ नहीं है कि मैं इसके बारे में नहीं जानता हूं)
"use strict";
प्रति फ़ाइल एक बार निर्दिष्ट करना होगा ।
यदि आप NodeJS के लिए मॉड्यूल लिख रहे हैं, तो वे पहले से ही एनकैप्सुलेटेड हैं। JSLint को बताएं कि आपको अपनी फ़ाइल के शीर्ष पर शामिल करके नोड मिला है:
/*jslint node: true */
/*jshint strict:false */
"node": true
गया .jshintrc
मैं इसके बजाय jshint का उपयोग करने का सुझाव दूंगा ।
यह इस चेतावनी को दबाने की अनुमति देता है /*jshint globalstrict: true*/
।
यदि आप एक पुस्तकालय लिख रहे हैं, तो मैं केवल वैश्विक सख्त का उपयोग करने का सुझाव दूंगा यदि आपका कोड मॉड्यूल में एनकैप्सुलेटेड है जैसा कि नोड्ज के साथ है।
अन्यथा आप उन सभी को बाध्य करेंगे जो आपके पुस्तकालय का उपयोग सख्त मोड में कर रहे हैं।
strict: 'global'
अभी आज़माएँ , और jshint.com/docs/options/#globalstrict
मैंने क्रॉस प्लेटफ़ॉर्म जावास्क्रिप्ट ब्लॉग पोस्ट के बाद एक Node.js / Browserify एप्लिकेशन बनाना शुरू किया । और मैं इस मुद्दे में भाग गया, क्योंकि मेरे ब्रांड न्यू ग्रंटफाइल ने जिश्ट पास नहीं किया।
सौभाग्य से मुझे ग्रंट पर लीनपब पुस्तक में एक उत्तर मिला :
यदि हम इसे अभी आज़माते हैं, तो हम अपनी ग्रन्टफ़ाइल को स्कैन करेंगे ... और कुछ त्रुटियां प्राप्त करेंगे:
$ grunt jshint Running "jshint:all" (jshint) task Linting Gruntfile.js...ERROR [L1:C1] W097: Use the function form of "use strict". 'use strict'; Linting Gruntfile.js...ERROR [L3:C1] W117: 'module' is not defined. module.exports = function (grunt) { Warning: Task "jshint:all" failed. Use --force to continue.
दोनों त्रुटियां हैं क्योंकि ग्रंटफाइल एक नोड प्रोग्राम है, और डिफ़ॉल्ट रूप से JSHint के
module
और स्ट्रिंग संस्करण के उपयोग को मान्यता या अनुमति नहीं देता हैuse strict
। हम एक JSHint नियम निर्धारित कर सकते हैं जो हमारे नोड कार्यक्रमों को स्वीकार करेगा। आइए हमारे jshint कार्य विन्यास को संपादित करें और एक विकल्प कुंजी जोड़ें:jshint: { options: { node: true }, }
node: true
जेशिंत को जोड़ने के लिए options
, "नोड मोड" में जेशिन को डालने के लिए, मेरे लिए दोनों त्रुटियों को हटा दिया।
निम्नलिखित सामग्री के साथ अपने प्रोजेक्ट के रूट पर एक फ़ाइल .jslintrc (या jshint के मामले में .jshintrc) जोड़ें:
{
"node": true
}
स्ट्रिंग रूप के साथ कुछ भी गलत नहीं है।
गैर-सख्त जावास्क्रिप्ट को सुगम बनाने की चिंता के लिए "वैश्विक" सख्त रूप से बचने के बजाय, शायद सख्त होने के लिए सिर्फ गैर-सख्त जावास्क्रिप्ट को ठीक करना बेहतर है।
मुझे लगता है कि हर कोई इस प्रश्न के "अचानक" भाग से चूक गया। सबसे अधिक संभावना है, आपके .jshintrc में एक सिंटैक्स त्रुटि है, इसलिए यह 'ब्राउज़र' लाइन सहित नहीं है। यह देखने के लिए कि कोई त्रुटि है, इसे एक जैसन सत्यापनकर्ता के माध्यम से चलाएँ।
यह कितना सरल है: यदि आप अपने सभी कोड के साथ सख्त होना चाहते हैं "use strict";
, तो अपने जावास्क्रिप्ट की शुरुआत में जोड़ें ।
लेकिन अगर आप केवल अपने कुछ कोड के साथ सख्त होना चाहते हैं, तो फ़ंक्शन फॉर्म का उपयोग करें। किसी भी तरह, मैं इसे अपने जावास्क्रिप्ट की शुरुआत में उपयोग करने के लिए आपको फिर से भेजूंगा क्योंकि यह आपको बेहतर कोडर बनाने में मदद करेगा।
"use strict";
अपनी जेएस फाइल के शीर्ष पर रखता हूं, इसलिए यह पूरी तरह से सच नहीं हो सकता है।
"use strict";
, जहां यह आपके कोड के शीर्ष पर रखा गया है। यह केवल "use strict;"
एक फ़ंक्शन में लिपटे जाने की अनुमति देता है। (JS_Hint_ आपको वैश्विक रूप का उपयोग करने की अनुमति देता है, हालांकि - आवश्यक सेटिंग के लिए ऊपर उत्तर देखें)।