Sertakan 'use strict';
sebagai pernyataan pertama dalam fungsi pembungkus, sehingga hanya memengaruhi fungsi itu. Ini mencegah masalah ketika menggabungkan skrip yang tidak ketat.
Lihat posting blog terbaru Douglas Crockford, Mode Ketat Datang ke Kota .
Contoh dari pos itu:
(function () {
'use strict';
// this function is strict...
}());
(function () {
// but this function is sloppy...
}());
Pembaruan:
Jika Anda tidak ingin membungkus dalam fungsi langsung (misalnya itu adalah modul simpul), maka Anda dapat menonaktifkan peringatan.
Untuk JSLint (per Zhami ):
/*jslint node: true */
Untuk JSHint :
/*jshint strict:false */
atau (per Laith Shadeed )
/* jshint -W097 */
Untuk menonaktifkan peringatan sewenang-wenang dari JSHint, periksa peta dalam kode sumber JSHint (perincian dalam dokumen ).
Pembaruan 2: opsi dukungan JSHintnode:boolean
. Lihat .jshintrc
di github .
/* jshint node: true */
-1
/*jshint strict:false */
, untuk membuatnya lebih jelas apa yang Anda lakukan (kecuali ada manfaat khusus untuk kode numerik Anda yang saya tidak tahu)"use strict";
satu kali per file.Jika Anda menulis modul untuk NodeJS, mereka sudah dienkapsulasi. Beri tahu JSLint bahwa Anda memiliki simpul dengan memasukkan di bagian atas file Anda:
sumber
/*jshint strict:false */
"node": true
ke .jshintrcSaya sarankan untuk menggunakan jshint saja.
Memungkinkan untuk menekan peringatan ini melalui
/*jshint globalstrict: true*/
.Jika Anda menulis perpustakaan, saya hanya akan menyarankan menggunakan global ketat jika kode Anda dienkapsulasi ke dalam modul seperti halnya dengan nodejs.
Kalau tidak, Anda akan memaksa semua orang yang menggunakan perpustakaan Anda ke mode ketat.
sumber
strict: 'global'
sekarang, dan lihat jshint.com/docs/options/#globalstrictSaya mulai membuat aplikasi Node.js / browserify setelah posting blog Cross Platform JavaScript . Dan saya mengalami masalah ini, karena Gruntfile baru saya tidak lulus jshint.
Untungnya saya menemukan jawaban di buku Leanpub tentang Grunt :
Menambahkan
node: true
ke jshintoptions
, untuk memasukkan jshint ke "mode Node", menghapus kedua kesalahan untuk saya.sumber
Tambahkan file .jslintrc (atau .jshintrc dalam kasus jshint) di root proyek Anda dengan konten berikut:
sumber
Tidak ada yang salah dengan bentuk string.
Daripada menghindari bentuk ketat "global" karena khawatir akan menggabungkan javascript yang tidak ketat, mungkin lebih baik memperbaiki javascript yang tidak ketat itu dengan ketat.
sumber
Saya pikir semua orang melewatkan bagian "tiba-tiba" dari pertanyaan ini. Kemungkinan besar .jshintrc Anda memiliki kesalahan sintaks, jadi tidak termasuk baris 'browser'. Jalankan melalui validator json untuk melihat di mana kesalahannya.
sumber
tambahkan baris ini pada titik awal file Anda
sumber
Begini sederhananya: Jika Anda ingin ketat dengan semua kode Anda, tambahkan
"use strict";
di awal JavaScript Anda.Tetapi jika Anda hanya ingin ketat dengan beberapa kode Anda, gunakan formulir fungsi. Bagaimanapun, saya akan merekomendasikan Anda untuk menggunakannya di awal JavaScript Anda karena ini akan membantu Anda menjadi pembuat kode yang lebih baik.
sumber
"use strict";
di bagian atas file JS saya, jadi ini mungkin tidak sepenuhnya benar."use strict";
, di mana ia ditempatkan di bagian atas kode Anda. Ini hanya memungkinkan"use strict;"
ketika dibungkus dalam suatu fungsi. (JS_Hint_ memungkinkan Anda menggunakan formulir global, - lihat jawaban di atas untuk pengaturan yang diperlukan).