This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
<!doctype html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Local Scoping" (Gültigkeitsbereiche) von let & const</title>
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css" rel="stylesheet" />
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<div class="container py-5">
|
||||
<h1>Local Scoping" (Gültigkeitsbereiche) von let & const</h1>
|
||||
<p>
|
||||
Variablen deklariert mit <strong>let</strong> & <strong>const</strong> haben ihren eingegrenzten
|
||||
Gültigkeitsbereich innerhalb von Codeblöcken ({})
|
||||
</p>
|
||||
</div>
|
||||
</main>
|
||||
<script>
|
||||
'use strict';
|
||||
|
||||
// Variablendefinition
|
||||
let b = 1;
|
||||
|
||||
// "{...}" - wird als Code-Block bezeichnet
|
||||
if (true) {
|
||||
let a = 1; // Variablendefinition
|
||||
const c = 4; // Variablendefinition
|
||||
|
||||
console.log('b:', b); // => 2
|
||||
|
||||
b = 3;
|
||||
if (true) {
|
||||
console.log('b:', b); // => 3
|
||||
}
|
||||
|
||||
console.log('a:', a); // => 1
|
||||
console.log('b:', b); // => 3
|
||||
console.log('c:', c); // => 4
|
||||
}
|
||||
|
||||
// console.log('a:', a); // => Uncaught ReferenceError: a is not defined
|
||||
console.log('b:', b); // => 3
|
||||
// console.log('c:', c); // => Uncaught ReferenceError: c is not defined
|
||||
|
||||
const fnName = () => {
|
||||
let d = 'text';
|
||||
let a = 2;
|
||||
|
||||
b = 4; // globale Variable wird angesprochen und auf 4 gesetzt
|
||||
d = d + b;
|
||||
|
||||
console.log('a:', a); // => 2
|
||||
console.log('b:', b); // => 4
|
||||
console.log('d:', d); // => 'text4'
|
||||
|
||||
return d;
|
||||
};
|
||||
|
||||
console.log('b:', b); // => 3
|
||||
|
||||
const e = fnName();
|
||||
|
||||
console.log('b:', b); // => 4
|
||||
|
||||
// console.log('d:', d); // => Uncaught ReferenceError: d is not defined
|
||||
|
||||
console.log('e:', e); // => 'text4'
|
||||
// console.log('a:', a); // => Uncaught ReferenceError: a is not defined
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,77 @@
|
||||
<!doctype html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Local Scoping" (Gültigkeitsbereiche) von var</title>
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css" rel="stylesheet" />
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<div class="container py-5">
|
||||
<h1>Local Scoping" (Gültigkeitsbereiche) von var</h1>
|
||||
<p>
|
||||
Variablen deklariert mit <strong>var</strong> haben ihren eingegrenzten Gültigkeitsbereich nur innerhalb von
|
||||
Funktionsblöcken ({}) - "function scope"
|
||||
</p>
|
||||
</div>
|
||||
</main>
|
||||
<script>
|
||||
'use strict';
|
||||
|
||||
// Variablendefinition
|
||||
var b = 1;
|
||||
|
||||
// "{...}" - wird als Code-Block bezeichnet
|
||||
if (true) {
|
||||
var a = 1; // Variablendefinition mit "var" haben KEINEN eingeschränkten Gültigkeitsbereich in Code-Blöcken ({...})
|
||||
const c = 4; // Variablendefinition
|
||||
|
||||
console.log('b:', b); // => 2
|
||||
|
||||
b = 3;
|
||||
if (true) {
|
||||
console.log('b:', b); // => 3
|
||||
}
|
||||
|
||||
console.log('a:', a); // => 1
|
||||
console.log('b:', b); // => 3
|
||||
console.log('c:', c); // => 4
|
||||
}
|
||||
|
||||
console.log('a:', a); // => 1
|
||||
console.log('b:', b); // => 3
|
||||
// console.log('c:', c); // => Uncaught ReferenceError: c is not defined
|
||||
|
||||
const fnName = () => {
|
||||
var d = 'text'; // eigener Gültigkeitsbereich innerhalb von Funktion (Function-Scope)
|
||||
var a = 2; // eigener Gültigkeitsbereich innerhalb von Funktion (Function-Scope)
|
||||
|
||||
console.log('a:', a); // => 2
|
||||
b = 4; // globale Variable wird angesprochen und auf 4 gesetzt
|
||||
d = d + b;
|
||||
|
||||
console.log('b:', b); // => 4
|
||||
console.log('d:', d); // => 'text4'
|
||||
|
||||
return d;
|
||||
};
|
||||
|
||||
for (var i = 0; i < 10; i++) {
|
||||
// console.log(i);
|
||||
}
|
||||
console.log('i:', i); //=> 10
|
||||
|
||||
console.log('b:', b); // => 3
|
||||
|
||||
const e = fnName();
|
||||
|
||||
console.log('b:', b); // => 4
|
||||
|
||||
// console.log('d:', d); // => Uncaught ReferenceError: d is not defined
|
||||
|
||||
console.log('e:', e); // => 'text4'
|
||||
console.log('a:', a); // => 1
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,89 @@
|
||||
<!doctype html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>"local scoping" von Codeblöcken</title>
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css" rel="stylesheet" />
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/tiny-slider/2.9.2/min/tiny-slider.js"></script>
|
||||
<!-- NOTE: prior to v2.2.1 tiny-slider.js need to be in <body> -->
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<div class="container py-5">
|
||||
<h1>"local scoping" von Codeblöcken</h1>
|
||||
<div class="my-slider">
|
||||
<div></div>
|
||||
<div></div>
|
||||
<div></div>
|
||||
</div>
|
||||
<!-- or ul.my-slider > li -->
|
||||
</div>
|
||||
</main>
|
||||
<!-- Globale Settings (für alle Entwickler)-->
|
||||
<script>
|
||||
'use strict';
|
||||
|
||||
// Konfigurationsvariablen (config.js | .env)
|
||||
const DEFAULT_LANG = 'en-EN';
|
||||
const TAX_RATE = 1.19;
|
||||
const BASE_URL = 'http://localhost:8080';
|
||||
const DB_NAME = 'todos_db';
|
||||
const DEBUG_MODE = false;
|
||||
</script>
|
||||
|
||||
<!-- Entwickler 01 (counterStats) -->
|
||||
<script>
|
||||
'use strict';
|
||||
|
||||
// Einschränkung vom Gültigkeitsbereich über Codeblöcke ({...})
|
||||
{
|
||||
let numbers = [1, 2, 3, 4, 5];
|
||||
let name = 'Counter Stat Module';
|
||||
const lang = DEFAULT_LANG || 'de-DE';
|
||||
const greeting = lang === 'de-DE' ? 'Hallo' : 'Hello';
|
||||
|
||||
// code logic....
|
||||
}
|
||||
|
||||
// console.log(numbers); // => Uncaught ReferenceError: numbers is not defined
|
||||
</script>
|
||||
<!-- Entwickler 02 (slider | carousel)-->
|
||||
<script>
|
||||
'use strict';
|
||||
// Einschränkung vom Gültigkeitsbereich über Codeblöcke ({...})
|
||||
{
|
||||
const numbers = [1, 2, 3, 4, 5];
|
||||
let slides = ['slide01', 'slide02'];
|
||||
let name = 'Slider';
|
||||
const lang = DEFAULT_LANG || 'de-DE';
|
||||
|
||||
// code logic....
|
||||
}
|
||||
|
||||
// console.log(slides); // => Uncaught ReferenceError: slides is not defined
|
||||
</script>
|
||||
<!-- Entwickler 03 (userbereich)-->
|
||||
<script>
|
||||
'use strict';
|
||||
// Einschränkung vom Gültigkeitsbereich über Codeblöcke ({...})
|
||||
{
|
||||
var numbers = [1, 2, 3, 4, 5];
|
||||
let userRoles = ['admin', 'guest', 'editor'];
|
||||
let name = 'User Dashboard';
|
||||
const lang = DEFAULT_LANG || 'de-DE';
|
||||
|
||||
var slider = tns({
|
||||
container: '.my-slider',
|
||||
items: 3,
|
||||
slideBy: 'page',
|
||||
autoplay: true,
|
||||
});
|
||||
// code logic....
|
||||
}
|
||||
|
||||
console.log(numbers); //=> [1, 2, 3, 4, 5]
|
||||
console.log(slider); //=> ZUGRIFF MÖGLICH
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,91 @@
|
||||
<!doctype html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>"local scoping" mit IIFE (Immediately invoked function expression)</title>
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css" rel="stylesheet" />
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/tiny-slider/2.9.2/min/tiny-slider.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
|
||||
<!-- NOTE: prior to v2.2.1 tiny-slider.js need to be in <body> -->
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
<div class="container py-5">
|
||||
<h1>"local scoping" mit IIFE (Immediately invoked function expression)</h1>
|
||||
<div class="my-slider">
|
||||
<div></div>
|
||||
<div></div>
|
||||
<div></div>
|
||||
</div>
|
||||
<!-- or ul.my-slider > li -->
|
||||
</div>
|
||||
</main>
|
||||
<!-- Globale Settings (für alle Entwickler)-->
|
||||
<script>
|
||||
'use strict';
|
||||
|
||||
// Konfigurationsvariablen (config.js)
|
||||
const DEFAULT_LANG = 'en-EN';
|
||||
const TAX_RATE = 1.19;
|
||||
const BASE_URL = 'http://localhost:8080';
|
||||
const DB_NAME = 'todos_db';
|
||||
const DEBUG_MODE = false;
|
||||
</script>
|
||||
|
||||
<!-- Entwickler 01 (counterStats) -->
|
||||
<script>
|
||||
'use strict';
|
||||
|
||||
// Einschränkung vom Gültigkeitsbereich mit IIFE (() => {})()
|
||||
(() => {
|
||||
let numbers = [1, 2, 3, 4, 5];
|
||||
let name = 'Counter Stat Module';
|
||||
const lang = DEFAULT_LANG || 'de-DE';
|
||||
const greeting = lang === 'de-DE' ? 'Hallo' : 'Hello';
|
||||
|
||||
// code logic....
|
||||
})();
|
||||
// console.log(numbers); // => Uncaught ReferenceError: numbers is not defined
|
||||
</script>
|
||||
<!-- Entwickler 02 (slider | carousel)-->
|
||||
<script>
|
||||
'use strict';
|
||||
// Einschränkung vom Gültigkeitsbereich mit IIFE (() => {})()
|
||||
(() => {
|
||||
const numbers = [1, 2, 3, 4, 5];
|
||||
let slides = ['slide01', 'slide02'];
|
||||
let name = 'Slider';
|
||||
const lang = DEFAULT_LANG || 'de-DE';
|
||||
|
||||
// code logic....
|
||||
})();
|
||||
|
||||
// console.log(numbers); // => Uncaught ReferenceError: numbers is not defined
|
||||
</script>
|
||||
<!-- Entwickler 03 (userbereich)-->
|
||||
<script>
|
||||
'use strict';
|
||||
// Einschränkung vom Gültigkeitsbereich mit IIFE (() => {})()
|
||||
(() => {
|
||||
var numbers = [1, 2, 3, 4, 5];
|
||||
let userRoles = ['admin', 'guest', 'editor'];
|
||||
let name = 'User Dashboard';
|
||||
const lang = DEFAULT_LANG || 'de-DE';
|
||||
|
||||
var slider = tns({
|
||||
container: '.my-slider',
|
||||
items: 3,
|
||||
slideBy: 'page',
|
||||
autoplay: true,
|
||||
});
|
||||
// code logic....
|
||||
|
||||
$('.container').css({ backgroundColor: '#eee' });
|
||||
})();
|
||||
|
||||
console.log(numbers); //=> ReferenceError: numbers is not defined
|
||||
console.log(slider); //=> ReferenceError: slider is not defined
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user