Ska jag använda semikolon i JavaScript?

Undvik kod där det kan uppkomma fel när ett semikolon saknas.

Använd semikolon för att förtydliga vad koden gör.

Om du kodar JAVA, C, eller C++ och glömmer ett semikolon så kommer kompilatorn att klaga!
Men när JavaScript motorn upptäcker ett syntax-fel infogar den semikolonet åt dig!
Problemet är dock att JavaScript-motorn i enstaka fall infogar semikolon där du inte vill att de ska vara.

När ska jag använda semikolon?

Först och främst, undvik kod där det kan uppkomma fel eller missförstånd då ett semikolon saknas!

Exempel på "dålig" kod, där man måste använda semikolon för att det inte ska bli fel:

var arr = [1,2,3]; // Måste ha semikolon här!
["x", "y", "z"].forEach(printValue)

function printValue(value) {
	console.log(value);
}

Se upp för kod där en ny rad börjar med parantes (, klammer [, slash / eller plus +.
Och kod som har en radbrytning efter return, break samt continue. Eller före ++ och --

Exempel på kod, där det är oklart vad koden gör:

var i = 0, j = 0
i
++
j
console.log(i)
console.log(j)

Använd semikolon för att förtydliga vad koden gör! Men det bästa är att skriva koden på ett sätt som inte kan misstolkas.

Ibland kan det vara frestande att ha flera instruktioner på en rad, och då måste man använda semikolon. Exempel:

var a, b
if(1 == 1) a = 2; b = 3 // Två instruktioner

Men skriv då hellre om det så här:

var a, b;
if(1 == 1) {
	a = 2; 
	b = 3;
}

... Så kommer koden fungera även utan semikolon.

Ska jag skriva semikolon,
även där det inte behövs!?

Om du ändrar i kod som har semikolon även där det inte behövs, sätt in semikolon!

Om du ändrar i kod som inte har semikolon, skippa semikolon där det inte behövs!

Om du börjar på ett nytt projekt, bestäm er för antingen eller, och håll er till det!
Ett tips är att använda en så kallad "linter" som klagar när ni inte håller era konventioner.

Om du är van vid att sätt in semikolon, fortsätt med det! (Men anpassa dig efter stilen i koden som du jobbar med.)

Personligen använder jag alltid semikolon då jag är van vid det. Jag tycker även att det ibland kan bli förvirrande när JavaScript-kod inte innehåller semikolon.


Skrivet av Johan Zetterberg, 16:e December 2015


Följ mig via RSS:   RSS https://zäta.com/rss.xml (ange adressen i din feed-läsare)