Ryhmittävät sulkeet JavaScriptissä
Halutessasi voit määrittää operaatioiden prioriteetin pyöreiden sulkeiden avulla. Muutetaanpa esimerkiksi koodiamme niin, että ensin suoritetaan yhteenlasku ja vasta sitten kertolasku:
let a = 2 * (2 + 3);
alert(a); // tulostaa 10 (tulos 2 * 5)
Huomio: sulkeita voi olla määritä tahansa määrä, mukaan lukien toistensa sisäkkäin:
let a = 2 * (2 + 4 * (3 + 1));
alert(a);
Sulkeisiin voidaan laittaa prioriteettisia operaatioita - tämä ei ole virhe. Esimerkiksi, laitetaan lukujen tulo sulkeisiin:
let a = (2 * 2) + 3;
alert(a); // tulostaa 7 (tulos 4 + 3)
Tässä tapauksessa sulkeet ovat ylimääräisiä (kertolaskulla on kuitenkin prioriteetti), mutta koodi on sallittua.
Joskus tällaista ryhmittelyä käytetään paikoissa, joissa operaatioiden prioriteetti ei ole ilmeinen. Esimerkkinä tarkastellaan seuraavaa koodia:
let a = 8 / 2 * 4;
alert(a);
Kuten jo tiedät, siinä suoritetaan ensin jakolasku ja sitten kertolasku. Mutta ensi silmäyksellä se ei ehkä ole ilmeistä.
Voit käyttää ryhmittäviä sulkeita osoittaaksesi prioriteetin eksplisiittisesti:
let a = (8 / 2) * 4;
alert(a);
Suorittamatta koodia, päätä mitä näytölle tulostetaan:
let a = (2 + 3) * (2 + 3);
alert(a);
Suorittamatta koodia, päätä mitä näytölle tulostetaan:
let a = (2 + 3) * 2 + 3;
alert(a);
Suorittamatta koodia, päätä mitä näytölle tulostetaan:
let a = 2 * (2 + 4 * (3 + 1));
alert(a);
Suorittamatta koodia, päätä mitä näytölle tulostetaan:
let a = 2 * 8 / 4;
alert(a);
Suorittamatta koodia, päätä mitä näytölle tulostetaan:
let a = (2 * 8) / 4;
alert(a);
Suorittamatta koodia, päätä mitä näytölle tulostetaan:
let a = 2 * (8 / 4);
alert(a);