Zurück zu blog
17. Aug. 2024
4 Minuten Lesezeit

JavaScript Refresher

Im Rahmen des Udemy Kurses, siehe letzter Blog Beitrag habe ich ebenfalls meine JavaScript Kenntnisse aufgefrischt bzw. erweitert.

Ein bisschen Theorie darf nicht fehlen

JavaScript ist eine Programmiersprache und kann im Browser, auf mobilen Endgeräten oder auf jeglichen Computern ausgeführt werden.

Hinzufügen zur Webanwendung

//index.html
<head>
	<title>Add JS </title>
	<script scr="assets/scripts/app.js"></script>
</head>
  • defer attribute
    • JavaScript wird ausgeführt, nachdem html im Body geparst wurde
  • type
    • Mit “module” kann jede Javascript-Datei Import/Export-Funktionen verwenden

Import/Export Values

// main.js
import {test} from "./export.js"
import importValueAsDefault from "./exportDefault.js";
import {test2, test3} from "./exportMulitple.js";

console.log(test); //123
console.log(importValueAsDefault); //123
console.log(test2); //123
console.log(test3); //123

//export.js
export let test = "123";
//exportDefault.js
export default "123";
//exportMultiple.js
export let test2 = "123";
export let test3 = "123";

Unterschiedliche Typen

  • string
  • number
  • boolean
  • undefined: kein Wert wurde zugewiesen
  • null: Wert zurücksetzen
  • objects

Arrow functions

  • ein anderer Weg Funktionen zu definieren
  • es gibt verschiedene Möglichkeiten der Definition:
export default function (){
	console.log("anonymous function")
}

export default ()=> {
	console.log("short anonymous function")
}

export default (firstParam, secondParam) => {
	console.log("arrow function with params")
}

export default onParam => {
	console.log("arrow function with on param")
}

export default number => {
	return number * 3;
}

// returning an object
export default number => { age: number};

Destructuring von Objekten, Arrays

/*
acces on array without Destructuring
*/

const userNameData = ["Max", "Mustermann"];
const firstName = userNameData[0];
const lastName = userNameData[1];
console.log(firstName) //Max
console.log(lastName) //Mustermann

/*
acces on array with Destructuring, variable names can be freely selected
*/

const [firstname, lastname] = ["Greta", "Musterfrau"];
console.log(firstname) //Greta
console.log(lastname); //Musterfrau

/*
access on object without Destructuring.
*/

const animal = {
   name: "cat",
   superfamily: "feloidea"
}

const name = animal.name;
const superfamily = animal.superfamily;
console.log(name) //cat
console.log(superfamily) //feloidea

/*
access on object with Destructuring. alias allowed
*/

const {name: animalName, superfamily: animalFamily} = {
   name: "lion",
   superfamily: "feloidea"
}

console.log(animalName) //lion
console.log(animalFamily) //feloidea

Spread Operator

Die Spread-Syntax kann verwendet werden, wenn alle Elemente eines Objekts oder Arrays in ein neues Array oder Objekt einbezogen werden oder einzeln auf die Argumentliste eines Funktionsaufrufs angewendet werden müssen.

const musicGenres = ["Rock", "Pop"]
const newMusicGenres = ["Metal"]
const twoArrays = [musicGenres, newMusicGenres]
console.log(twoArrays)
/*
... mit einem Array
*/
const oneArraywithAllValues = [...musicGenres, ...newMusicGenres]
console.log(oneArraywithAllValues)
const animal1 = {
   name: "cat",
}
const animal2 = {
   name: "lion"
}

/*
vorsicht. der key name muss unterschiedlich sein, sonst werden Werte überschrieben
cat überschreibt sonst lion
*/
const superFamily = {
   test: "feloidea",
   ...animal1,
   ...animal2
}
console.log(superFamily)

Ein Array zu einem Objekt transformieren

function transformToObjects(numberArray) {
   return numberArray.map((item)=> {
    return {
     val: item
    };
   })
}

const listOfNumbers = [1, 2, 3]
const result = transformToObjects(listOfNumbers);
console.log(result)

Kontrollstrukturen

const password = prompt("Please enter password")
const successMessage = 'correct password';
const errorMessage = 'Access not granted';

if (password === "Hello") {
   console.log(successMessage);
} else if (password === "hello") {
   console.log(successMessage);
} else {
   console.log(errorMessage)
}

const musicGenres = ["Rock", "Pop"]

for (const genre of musicGenres){
   console.log(genre);
}

Funktionen als Werte

function returnSomething() {
   return console.log("Return")
}

function valueAsFunction() {
   console.log("valueAsFunction")
}

/*
set Timeout with the value of return statement
*/
setTimeout(returnSomething(), 2000);

/*
use function as value
*/
setTimeout(valueAsFunction, 3000)