Detta verk är framtaget av Mats Loock i anslutning till kursen Grundläggande programmering (1DV021) vid Linnéuniversitetet.
Allt innehåll i detta verk förutom fotografier, ikoner, bild på kurslitteraturen samt Linnéuniversitetets logotyp och symbol,
är licensierad under en
Creative Commons Erkännande 4.0 Internationell Licens
.
Om du förändrar innehållet så ta inte med fotografier, ikoner, bild på kurslitteraturen samt Linnéuniversitetets logotyp och symbol i din nya version!
Vid all användning måste du ange källan: ”Linnéuniversitetet – Grundläggande programmering (1DV021)” och en länk till https://coursepress.lnu.se/kurs/grundlaggande-programmering och till Creative Common-licensen här ovan.
src/greetings.js
const sayHelloInEnglish = function () { return 'Hello'}const sayHelloInSpanish = function () { return 'Hola'}const sayHelloInSwedish = function () { return 'Hej'}
src/greetings.js
const sayHelloInEnglish = function () { return 'Hello'}const sayHelloInSpanish = function () { return 'Hola'}const sayHelloInSwedish = function () { return 'Hej'}// Två funktioner som exporteras; funktionen sayHelloInSwedish är att betrakta som privat inom modulen,// d.v.s. inte tillgänglig utanför filen greetings.js.module.exports.sayHelloInEnglish = sayHelloInEnglishmodule.exports.sayHelloInSpanish = sayHelloInSpanish
module.exports
, ett objekt som Node.js tillhandahåller, referenser till funktioner kan du bestämma vilka funktioner som ska göras tillgängliga utanför filen, exporteras.src/greetings.js
// Två funktioner som exporteras; funktionen sayHelloInSwedish// är att betrakta som privat inom modulen, d.v.s. inte tillgänglig utanför// filen greetings.js.module.exports.sayHelloInEnglish = function () { return 'Hello'}module.exports.sayHelloInSpanish = function () { return 'Hola'}const sayHelloInSwedish = function () { return 'Hej'}
src/greetings.js
// Två funktioner som exporteras; funktionen sayHelloInSwedish// är att betrakta som privat inom modulen, d.v.s. inte tillgänglig utanför// filen greetings.js.module.exports = { sayHelloInEnglish : function () { return 'Hello' }, sayHelloInSpanish : function () { return 'Hola' }}const sayHelloInSwedish = function () { return 'Hej'}
src/User.js
function User (name, email) { this.name = name this.email = email}module.exports = User// Använd INTE!//module.exports.User = User
module.exports
referensen till konstruktorfunktionen direkt. (Har betydelse vid import av modulen.)require
och den relativa sökvägen till filen.app.js
const greetings = require('./src/greetings')console.log(greetings.sayHelloInEnglish())console.log(greetings.sayHelloInSpanish())
src/playAround.js
const greetings = require('./greetings');console.log(greetings.sayHelloInEnglish());console.log(greetings.sayHelloInSpanish());
./
, ../
eller /
för att indikera en fil, annars måste modulen vara en "core module" eller återfinnas i katalogen node_modules
..js
, .json
och slutligen .node
.src/User.js
function User(name, email) { this.name = name this.email = email}module.exports = User
app.js
const User = require('./src/User')let user = new User('Ellen Nu', 'en@lnu.se')console.log(user) // OUTPUT: { name: 'Ellen Nu', email: 'en@lnu.se' }
function Address (addressLine, postalCode, city) { this.adressLine = addressLine this.postalCode = postalCode this.city = city}let address1 = new Address('Storgatan 1', '123 45', 'Storstaden') // OK adress!let address2 = new Address('Lillgatan 1', 'ingen aning', 'Lillstaden') // felaktigt postnummer!
function Address (addressLine, postalCode, city) { this.adressLine = addressLine this.city = city this.postalCode = postalCode}Object.defineProperty(Address.prototype, 'postalCode', { get: function () { return this._postalCode }, set: function (value) { if (!/^[1-9]\d{2} ?\d{2}$/.test(value)) { throw new Error('postalCode seems to be invalid.') } this._postalCode = value }})let address1 = new Address('Storgatan 1', '123 45', 'Storstaden') // OK adress!let address2 = new Address('Lillgatan 1', 'ingen aning', 'Lillstaden') // Undantag kastas!
/^[1-9]\d{2} ?\d{2}$/
./^[1-9]\d{2} ?\d{2}$/
?RegExp
.^
, start av strängen.[1-9]
, exakt en förekomst av 1, 2, 3, 4, 5, 6, 7, 8 eller 9.\d{2}
, exakt två förekomster av 0 till 9.˽?
, ingen eller en förekomst av ett mellanslag.\d{2}
, exakt två förekomster av 0 till 9.$
, slut på strängen.RegExp
-objekt på:let regexp1 = /^[1-9]\d{2} ?\d{2}$/ // literallet regexp2 = new RegExp('^[1-9]\d{2} ?\d{2}$') // konstruktor
try...catch
throw
.try
-block, som följs av ett...catch
-block innehållande kod som ska exekveras om ett undantag har kastats.try { // Normalt programflöde i try-blocket. let address = new Address('Lillgatan 1', 'ingen aning', 'Lillstaden') // Undantag kastas! // Gör något med address2...} catch (e) { // Fångar undantaget. // Programflöde i catch-blocket om fel inträffat, d.v.s. om undantag kastats av try-blocket. concole.error(e.message) // Presenterar felmeddelandet "postalCode seems to be invalid.".}
// imperativelet arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]for (let i = 0; i < arr.length; i += 1) { arr[i] = Math.pow(arr[i], 2)}console.log(arr) // OUTPUT: [ 0, 1, 4, 9, 16, 25, 36, 49, 64, 81 ]// declarative with anonymous function expressionarr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]let sqrArr = arr.map(function(num) { return Math.pow(num, 2)})console.log(sqrArr) // OUTPUT: [ 0, 1, 4, 9, 16, 25, 36, 49, 64, 81 ]// declarative with arrow function (lambda expression)sqrArr = arr.map(num => Math.pow(num, 2))console.log(sqrArr) // OUTPUT: [ 0, 1, 4, 9, 16, 25, 36, 49, 64, 81 ]
this
hanteras).Detta verk är framtaget av Mats Loock i anslutning till kursen Grundläggande programmering (1DV021) vid Linnéuniversitetet.
Allt innehåll i detta verk förutom fotografier, ikoner, bild på kurslitteraturen samt Linnéuniversitetets logotyp och symbol,
är licensierad under en
Creative Commons Erkännande 4.0 Internationell Licens
.
Om du förändrar innehållet så ta inte med fotografier, ikoner, bild på kurslitteraturen samt Linnéuniversitetets logotyp och symbol i din nya version!
Vid all användning måste du ange källan: ”Linnéuniversitetet – Grundläggande programmering (1DV021)” och en länk till https://coursepress.lnu.se/kurs/grundlaggande-programmering och till Creative Common-licensen här ovan.
Keyboard shortcuts
↑, ←, Pg Up, k | Go to previous slide |
↓, →, Pg Dn, Space, j | Go to next slide |
Home | Go to first slide |
End | Go to last slide |
Number + Return | Go to specific slide |
b / m / f | Toggle blackout / mirrored / fullscreen mode |
c | Clone slideshow |
p | Toggle presenter mode |
t | Restart the presentation timer |
?, h | Toggle this help |
Esc | Back to slideshow |