উত্তর:
'use strict';
মোড়ানো কার্যক্রমে প্রথম বিবৃতি হিসাবে অন্তর্ভুক্ত করুন , সুতরাং এটি কেবল সেই ফাংশনকেই প্রভাবিত করে। কঠোর নয় এমন স্ক্রিপ্টগুলি সংযুক্ত করার সময় এটি সমস্যাগুলি প্রতিরোধ করে।
দেখুন ডগলাস Crockford এর সর্বশেষ ব্লগ পোস্ট কঠোর মোডে শহরে আসছে ।
পোস্ট থেকে উদাহরণ:
(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: জেএসহিন্টnode:boolean
বিকল্পটি সমর্থন করে । দেখুন .jshintrc
GitHub এ ।
/* jshint node: true */
-1
/*jshint strict:false */
আপনি কী করছেন তা পরিষ্কার করে দেওয়া (যদি না আপনার
"use strict";
।
আপনি যদি নোডজেএসের জন্য মডিউলগুলি লিখছেন তবে সেগুলি ইতিমধ্যে এনপ্যাপুলেটেড। জেএসলিন্টকে বলুন যে আপনি নিজের ফাইলের শীর্ষে অন্তর্ভুক্ত করে নোড পেয়েছেন:
/*jslint node: true */
/*jshint strict:false */
"node": true
.Jshintrc- এ যুক্ত হয়েছে
আমি এর পরিবর্তে jshint ব্যবহার করার পরামর্শ দেব ।
এটি এর মাধ্যমে এই সতর্কতা দমন করতে দেয় /*jshint globalstrict: true*/
।
আপনি যদি কোনও লাইব্রেরি লিখছেন তবে আমি কেবলমাত্র বিশ্বব্যাপী কঠোর ব্যবহারের পরামর্শ দিচ্ছি যদি আপনার কোডটি মডিউলগুলিতে নোডেজের মতো হয়।
অন্যথায় আপনি যারা আপনার গ্রন্থাগারটি ব্যবহার করছেন তাদের কঠোর মোডে বাধ্য করবেন।
strict: 'global'
এখনই চেষ্টা করুন , এবং jshint.com/docs/options/#globalstrict দেখুন
আমি ক্রস প্ল্যাটফর্ম জাভাস্ক্রিপ্ট ব্লগ পোস্ট অনুসরণ করে একটি নোড.জেএস / ব্রাউজারফাই অ্যাপ্লিকেশন তৈরি করা শুরু করেছি । এবং আমি এই ইস্যুতে দৌড়েছি, কারণ আমার একেবারে নতুন গ্রান্টফিল জ্যাশিন্টটি পাস করেনি।
ভাগ্যক্রমে গ্রান্টের উপর লিনপব বইটিতে একটি উত্তর পেয়েছি :
যদি আমরা এটি এখনই ব্যবহার করে দেখি তবে আমরা আমাদের গ্রান্টফাইলে স্ক্যান করব ... এবং কিছু ত্রুটি পেয়ে যাব:
$ 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.
উভয় ত্রুটি আছে কারণ Gruntfile একটি নোড প্রোগ্রাম, এবং ডিফল্ট ভাবে JSHint চিনতে বা ব্যবহারের অনুমতি দেয় না
module
এবং স্ট্রিং সংস্করণuse strict
। আমরা একটি JSHint বিধি সেট করতে পারি যা আমাদের নোড প্রোগ্রামগুলি গ্রহণ করবে। আসুন আমাদের jshint টাস্ক কনফিগারেশন সম্পাদনা করুন এবং একটি বিকল্প কী যুক্ত করুন:jshint: { options: { node: true }, }
যোগ করার পদ্ধতি node: true
jshint করতে options
আমার জন্য "নোড মোড" মধ্যে jshint করা, উভয় ত্রুটি সরানো হয়েছে।
নিম্নলিখিত প্রকল্পের সাথে আপনার প্রকল্পের মূলে একটি ফাইল .jslintrc (অথবা jshint এর ক্ষেত্রে .jshintrc) যুক্ত করুন:
{
"node": true
}
স্ট্রিং ফর্মের সাথে সহজাত ভুল কিছু নেই।
অ-কঠোর জাভাস্ক্রিপ্টকে গাaten় করার চিন্তার জন্য "গ্লোবাল" কঠোর ফর্মটি এড়িয়ে চলার পরিবর্তে, কেবল অ-কড়া জাভাস্ক্রিপ্টকে কঠোর হতে কেবল ঠিক করা আরও ভাল।
আমি মনে করি সবাই এই প্রশ্নের "হঠাৎ" অংশটি মিস করেছেন। সম্ভবত, আপনার .jshintrc এর সিন্ট্যাক্স ত্রুটি রয়েছে, সুতরাং এটি 'ব্রাউজার' লাইনটি অন্তর্ভুক্ত করে না। ত্রুটিটি কোথায় তা দেখার জন্য এটি একটি জসন যাচাইকারীর মাধ্যমে চালান।
এটি কতটা সহজ এটি: আপনি যদি আপনার সমস্ত কোডের সাথে কঠোর হতে চান তবে "use strict";
আপনার জাভাস্ক্রিপ্টের শুরুতে যুক্ত করুন ।
তবে যদি আপনি কেবল আপনার কিছু কোডের সাথে কঠোর হতে চান তবে ফাংশন ফর্মটি ব্যবহার করুন। যাইহোক, আমি আপনাকে আপনার জাভাস্ক্রিপ্টের শুরুতে এটি ব্যবহার করার জন্য পুনঃসংশোধন করব কারণ এটি আপনাকে আরও ভাল কোডার হতে সহায়তা করবে।
"use strict";
আমার জেএস ফাইলের শীর্ষে রাখি তখন আমি আসলে এই ত্রুটিটি পাই , তাই এটি সম্পূর্ণ সত্য নাও হতে পারে।
"use strict";
, যেখানে এটি কেবল আপনার কোডের শীর্ষে রাখা হয়েছে। এটি কেবলমাত্র "use strict;"
কোনও ক্রিয়াকলাপে আবদ্ধ থাকা অবস্থায় অনুমতি দেয় । (জেএস_হিন্ট_ আপনাকে বৈশ্বিক ফর্মটি ব্যবহার করতে দেয়, যদিও - প্রয়োজনীয় সেটিংসের জন্য উপরের উত্তরটি দেখুন)।