v1.11.4
Olemme koonneet avuksesi JavaScriptin perusteet: cheatsheet.
Alla muutama tarkistuskysymys, jolla varmistetaan, että JavaScript-syntaksi on luettu ja ymmärretty.
Miten ulkoinen JavaScript ladataan asiakirjaan?
<link rel=”javascript” href=”scriptfile.js”>
<script src=”scriptfile.js”></script>
<script href=”scriptfile.js”></script>
<import rel=”javascript” src=”scriptfile.js”>
Mihin kohtaan asiakirjaa voit sisällyttää JavaScriptin?
Pääelementin sisällä
Runkoelementin sisällä
Joko pään tai vartaloelementin sisällä
Kuinka määrität lohkonäkyvyysmuuttujan (block-scope) tmp, jonka arvo on 2?
tmp
int tmp = 2;
Number tmp = 2;
tmp = 2;
let tmp = 2;
var tmp = 2;
Kuinka määrität lohkonäkyvyydellä vakion tmp, jonka arvo on 2 ja jonka arvoa ei voi muuttaa?
const tmp = 2;
let tmp =2;
Mikä on lohko?
koodirivejä, jotka sisennetään automaattisesti samalla tavalla
lausekkeet, jotka on ryhmitelty jonkin entiteetin, esimerkiksi funktion, mukaan
jotain hakasulkeissa
ohjausrakenteen sisäinen sisältö, kuten for tai while.
for
while
Mikä on engl. termi var-muuttujan nostamiselle funktion näkyvyysalueelle vaikka var-muuttuja olisi määritelty funktion sisälohkossa?
var
Mitkä seuraavista koodinpätkistä ovat oikeita eivätkä aiheuta virheitä?
// a function sayHi() {console.log('hi!')} sayHi()
// b sayHi() function sayHi() {console.log('hi!')}
// c var sayHi = function sayHi() {console.log('hi!')} sayHi()
// d sayHi() var sayHi = function sayHi() {console.log('hi!')}
// e (function sayHi() { console.log('hi!') })()
a on ok
b on kunnossa
c on kunnossa
d on kunnossa
e on kunnossa
(function sayHi() { console.log('hi!') })()
() yllä olevan funktion lopussa tarkoittaa, että ..
()
se on syntaksivirhe ja se pitäisi poistaa
toiminto ei ota argumentteja
toiminnot käynnistyvät itsestään
Tietotyypit voivat olla primitiivisiä tai objekteja
primitiivit on instantioitava avainsanalla new
new
sisäänrakennetut objektit instantoidaan usein avainsanalla new
kaikki new perustettu on poistettava erikseen
primitiivit sisältävät tyypit int, float, string ja object
== vertailu
==
aiheuttaa tyyppikoersion
tulostaa false kutsuttaessa console.log(1 == ‘1’)
kutsutaan tiukaksi vertailuksi (strict comparison)
=== vertailu
===
tulostaa false, kun console.log(1 === ‘1’) kutsutaan
sitä kutsutaan tiukaksi vertailuksi
Miten määrität taulukon alkuarvoilla JavaScriptissä?
let arr = [1, 2, 3];
let arr = {1, 2, 3};
const arr = (1, 2, 3);
Määritä tyhjä taulukko vain kahdella merkillä (eli määritelmän enimmäispituus on kaksi merkkiä):
let array1 = ...
Määritä tyhjä objekti (käytetään assosiatiivisena taulukkona tai mappina) vain kahdella merkillä:
let object1 = ...
Funktiot JavaScriptissä
ovat ensimmäisen luokan kansalaisia (first class citizen)
tulostavat object jos typeof() kutsutaan funktion kanssa
object
typeof()
ovat objekteja
voidaan määrittää muuttujaan
Mitä tapahtuu, kun seuraava JavaScript-koodinpätkä suoritetaan?
function examineArguments(a,b,c){ console.log(a,b,c); } const a=1; const b=2; const c=3; const d=4; const e=5; const f=6; examineArguments(a,b,c,d,e,f);
annetaan ajonaikainen virhe
ohjelma tulostaa “1 2 3”
funktiota ei löydy, koska funktion määrittely poikkeaa odotetusta
function examineArguments(a, b ,c){ console.log(a, b, c); } const a = 1; const b = 2; const c = 3; examineArguments(a, b);
ohjelma tulostaa “1 2”
ohjelma tulostaa “1 2 undefined”
Mikä seuraavista määrittelee funktion, joka palauttaa numeron?
function myFunction() { return 3; }
public Number function myFunction() { return 3; }
var myFunction = function() { return 3; }
Number function myFunction() { return 3; }
function addTenStupid(num) { for(i=0; i < 10; i++) { num += 1; } return num; } function addThousandStupid(num) { for(i=0; i < 100; i++) { num += addTenStupid(0); } return num; } console.log(addTenStupid(0)); console.log(addTenStupid(5)); console.log(addThousandStupid(1));
addTenStupid(0), ensimmäinen console log, tulostaa 10
addTenStupid(5), toinen console log, tulostaa 15
addThousandStupid(1) ei tulosta mitään
tämä esimerkki on tarkoitettu näyttämään, kuinka globaalit muuttujat ovat vaarallisia