ฉันรวมถึงคำสั่ง:
"use strict";
ที่จุดเริ่มต้นของไฟล์ Javascript ของฉันส่วนใหญ่
JSLint ไม่เคยเตือนมาก่อนเกี่ยวกับเรื่องนี้ แต่ตอนนี้มันพูดว่า:
ใช้รูปแบบฟังก์ชั่นของ "ใช้เข้มงวด"
ไม่มีใครรู้ว่า "รูปแบบฟังก์ชั่น" จะเป็นอย่างไร
ฉันรวมถึงคำสั่ง:
"use strict";
ที่จุดเริ่มต้นของไฟล์ Javascript ของฉันส่วนใหญ่
JSLint ไม่เคยเตือนมาก่อนเกี่ยวกับเรื่องนี้ แต่ตอนนี้มันพูดว่า:
ใช้รูปแบบฟังก์ชั่นของ "ใช้เข้มงวด"
ไม่มีใครรู้ว่า "รูปแบบฟังก์ชั่น" จะเป็นอย่างไร
คำตอบ:
รวม'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 */
หรือ (ต่อLaith Shadeed )
/* jshint -W097 */
หากต้องการปิดใช้งานคำเตือนใด ๆ จาก JSHint ให้ตรวจสอบแผนที่ในซอร์สโค้ด JSHint (รายละเอียดในเอกสาร )
อัปเดต 2: JSHintรองรับnode:boolean
ตัวเลือก ดู.jshintrc
ที่ GitHub
/* jshint node: true */
-1
/*jshint strict:false */
ที่จะทำให้มันชัดเจนสิ่งที่คุณทำ (ยกเว้นกรณีที่มีประโยชน์โดยเฉพาะรหัสตัวเลขของคุณว่าผมไม่ทราบ)
"use strict";
หนึ่งครั้งต่อไฟล์
หากคุณกำลังเขียนโมดูลสำหรับ NodeJS พวกเขาจะถูกห่อหุ้มแล้ว บอก JSLint ว่าคุณมีโหนดโดยรวมที่ด้านบนของไฟล์ของคุณ:
/*jslint node: true */
/*jshint strict:false */
"node": true
ใน. jshintrc
ฉันแนะนำให้ใช้jshintแทน
/*jshint globalstrict: true*/
จะช่วยให้การปราบปรามคำเตือนนี้ผ่านทาง
หากคุณกำลังเขียนไลบรารีฉันจะแนะนำให้ใช้ระดับโลกเท่านั้นหากรหัสของคุณถูกห่อหุ้มในโมดูลเช่นเดียวกับกรณีที่มี nodejs
มิฉะนั้นคุณจะบังคับให้ทุกคนที่ใช้ห้องสมุดของคุณเข้าสู่โหมดเข้มงวด
strict: 'global'
ตอนนี้และดูjshint.com/docs/options/#globalstrict
ฉันเริ่มสร้างแอปพลิเคชัน Node.js / เบราว์เซอร์หลังจากโพสต์บล็อกข้ามแพลตฟอร์ม JavaScript และฉันพบปัญหานี้เพราะ Gruntfile ใหม่ของฉันไม่ผ่าน jshint
โชคดีที่ฉันพบคำตอบในหนังสือ Leanpub บน Grunt :
หากเราลองตอนนี้เราจะสแกน Gruntfile ของเรา…และรับข้อผิดพลาด:
$ 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 เป็นโปรแกรม Node และโดยค่าเริ่มต้น JSHint ไม่รู้จักหรืออนุญาตให้ใช้และรุ่นสตริงของ
module
use strict
เราสามารถตั้งกฎ JSHint ที่จะยอมรับโปรแกรมโหนดของเรา มาแก้ไขการกำหนดค่างาน jshint ของเราและเพิ่มปุ่มตัวเลือก:jshint: { options: { node: true }, }
การเพิ่มnode: true
jshint options
เพื่อใส่ jshint ใน "โหมดโหนด" ลบข้อผิดพลาดทั้งสองสำหรับฉัน
เพิ่มไฟล์. jslintrc (หรือ. jshintrc ในกรณีของ jshint) ที่รูทของโปรเจ็กต์ของคุณด้วยเนื้อหาต่อไปนี้:
{
"node": true
}
ไม่มีอะไรผิดปกติกับรูปแบบสตริง
แทนที่จะหลีกเลี่ยงรูปแบบที่เข้มงวด "ทั่วโลก" เนื่องจากความกังวลในการเชื่อมต่อจาวาสคริปต์ที่ไม่เข้มงวดมันน่าจะดีกว่าที่จะแก้ไขจาวาสคริปต์ที่ไม่เข้มงวดเพื่อให้เข้มงวด
ฉันคิดว่าทุกคนพลาดส่วน "ทันใด" ของคำถามนี้ เป็นไปได้มากว่า. jshintrc ของคุณมีข้อผิดพลาดทางไวยากรณ์ดังนั้นจึงไม่รวมบรรทัด 'เบราว์เซอร์' รันผ่านตัวตรวจสอบ json เพื่อดูว่าข้อผิดพลาดอยู่ที่ไหน
process.on('warning', function(e) {
'use strict';
console.warn(e.stack);
});
process.on('uncaughtException', function(e) {
'use strict';
console.warn(e.stack);
});
เพิ่มบรรทัดนี้ไปที่จุดเริ่มต้นของไฟล์ของคุณ
นี่คือความง่าย: ถ้าคุณต้องการเข้มงวดกับรหัสทั้งหมดของคุณเพิ่ม"use strict";
ที่จุดเริ่มต้นของ JavaScript ของคุณ
แต่ถ้าคุณต้องการเข้มงวดกับรหัสของคุณให้ใช้แบบฟอร์มฟังก์ชั่น อย่างไรก็ตามฉันจะแนะนำให้คุณใช้มันที่จุดเริ่มต้นของ JavaScript ของคุณเพราะสิ่งนี้จะช่วยให้คุณเป็น coder ที่ดีขึ้น
"use strict";
ที่ด้านบนของไฟล์ JS ของฉันเท่านั้นดังนั้นสิ่งนี้อาจไม่เป็นจริงทั้งหมด
"use strict";
ซึ่งจะอยู่ที่ด้านบนสุดของรหัสของคุณ มันช่วยให้"use strict;"
เมื่อห่อในฟังก์ชั่นเท่านั้น (JS_Hint_ ช่วยให้คุณสามารถใช้แบบฟอร์มทั่วโลก - ดูคำตอบข้างต้นสำหรับการตั้งค่าที่จำเป็น)