vef1-2025

Vefforritun 1 kennd haustið 2025

View the Project on GitHub vefforritun/vef1-2025

Fyrirlestur 1 – JavaScript villur og regex

Vefforritun 1 — TÖL107G

Ólafur Sverrir Kjartansson, osk@hi.is


Villumeðhöndlun


Kasta villu


Grípa villu


try {
  // e-ð sem kastar villu
} catch (e) {
  // gera e-ð í villu
}

finally


try {
  // e-ð sem kastar villu
} catch (e) {
  // gera e-ð í villu
} finally {
  // taka til
}

Algengar villur

Getum fengið upp villur þegar við köllum í innbyggð föll eða gerum eitthvað vitlaust


Hvaða villa?


try {
  /* ... */
} catch (e) {
  if (e instanceof TypeError) {
    console.log('TypeError', e);
  } else if (e instanceof ReferenceError) {
    console.log('ReferenceError', e);
  }
}

Notkun


Ekki:

try {
  const setup = {};
  const result = willThrow(setup);
  const calc = result + 1;
} catch (e) {
  // gera e-ð í villu
}

frekar:

let result = 0; // ef það er í lagi
try {
  result = willThrow(setup);
} catch (e) {
  // gera e-ð í villu
}
const calc = result + 1;

Debugger



Regular expressions


Reglulegar segðir


Some people, when confronted with a problem, think “I know, I’ll use regular expressions.” Now they have two problems.

Jamie Zawinski



Segð


Hagnýtir hlutir í segðum




Flags


Grúppur


Föll í JavaScript


/halló/.test('halló heimur');
/hæ/.test('halló heimur');
const re = /quick\s(brown).+?(jumps)/ig;
re.exec('The Quick Brown Fox Jumps Over The Lazy Dog');
'The Quick Brown Fox Jumps Over The Lazy Dog'
  .match(/quick\s(brown).+?(jumps)/ig);
'hæ hæ, hvað segiru? bæ!'
  .replace(/(h|b)æ/g, 'lol');

Getur verið mjög hentugt að nota tól til að smíða reglulegar segðir, t.d. regex101.com