Adakah yang bisa menjelaskan kepada saya mengapa JSHint mengeluh tentang hal berikut,
window.location.href = String1
+ '#'
+ Sting2
+ '='
+ String3;
Dengan kesalahan itu, Bad line breaking before '+' error
Saya memahami bahwa kesalahan ini dapat dikonfigurasi dengan laxbreak
opsi , yang dijelaskan sebagai
Opsi ini menahan sebagian besar peringatan tentang kerusakan baris yang mungkin tidak aman di kode Anda. Itu tidak menekan peringatan tentang gaya pengkodean yang mengutamakan koma. Untuk menekannya, Anda harus menggunakan laxcomma (lihat di bawah).
Penjelasan ini cukup singkat dan saya ingin tahu mengapa memutuskan garis dengan cara ini dianggap buruk atau kendor pada awalnya.
Ingatlah bahwa saya tidak mencoba memulai perang suci di sini, saya hanya mencari jawaban obyektif tentang mengapa orang-orang JSHint menganggap ini buruk, apakah itu hanya preferensi gaya yang mereka masukkan ke dalam linter mereka (saya pikir JSLint adalah linter yang beropini), atau jika ada sesuatu yang bisa salah pada interpreter tertentu saat garis melanggar cara ini.
sumber
Jawaban:
Ini adalah panduan gaya untuk menghindari pernyataan yang bisa menyebabkan asumsi tentang penyisipan titik koma otomatis .
Idenya adalah Anda memperjelas pada akhir baris apakah ekspresi berakhir di sana atau dapat dilanjutkan di baris berikutnya.
sumber
+
. lebih mudah dilihat (dan tidak terlalu rentan terhadap kesalahan) untuk mengikuti satu kolom di sebelah kiri daripada melompat ke ujung paling jauh dari setiap baris untuk melihat apakah itu akan ditambahkan ke baris berikutnya. bahkan tata bahasanya tidak terlalu kikuk: "Baris 118 menambahkan 117" versus "Baris 117 akan ditambahkan dengan Baris 118."Jshint tidak akan menandai ini sebagai pemisah baris yang buruk jika Anda menggunakan + sebelum pemutusan baris sebagai lawan di baris baru. Seperti:
sumber
Bukan jawaban langsung untuk pertanyaan tetapi bagi siapa saja yang menemukan ini dari Googling (seperti yang saya lakukan) yang ingin mempertahankan aturan tetapi memperbaiki peringatan, berikut ini mungkin berguna ...
Saat menggunakan Notepad ++ (mis. Dengan plugin JSLint), ini dapat diperbaiki menggunakan pencarian & ganti berikut:
(\r\n|\n|\r)( *)\+
+$1$2
(Hanya diuji di Windows tetapi regex juga harus berfungsi dengan akhiran baris Unix atau Mac OS.)
Untuk melakukan hal yang sama untuk
||
,&&
,==
,!=
,<=
atau>=
bukan+
, gunakan ini:(\r\n|\n|\r)( *)(\|\||&&|==|!=|<=|>=)
$3$1 $2
sumber