Let JavaScript







? S2015 ha introdotto due nuove importanti parole chiave JavaScript: lete const.
? Queste due parole chiave forniscono variabili (e costanti) di Scope di blocco in JavaScript.
? Prima di ES2015, JavaScript aveva solo due tipi di ambito: Global Scope e Function Scope .
? Ambito globale
? Le variabili dichiarate globalmente (al di fuori di qualsiasi funzione) hanno Global Scope .
https://www.w3schools.com/js/tryit.asp?filename=tryjs_scope_global


<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Scope</h2>

<p>A GLOBAL variable can be accessed from any script or function.</p>

<p id="demo"></p>

<script>
var carName = "Volvo";
myFunction();

function myFunction() {
document.getElementById("demo").innerHTML = "I can display " + carName;
}
</script>

</body>
</html>

? Le variabili dichiarate localmente (all?interno di una funzione) hanno Function Scope .

https://www.w3schools.com/js/tryit.asp?filename=tryjs_scope_local

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Scope</h2>

<p>Outside myFunction() carName is undefined.</p>

<p id="demo1"></p>

<p id="demo2"></p>

<script>
myFunction();

function myFunction() {
var carName = "Volvo";
document.getElementById("demo1").innerHTML = typeof carName + " " + carName;
}
document.getElementById("demo2").innerHTML = typeof carName;
</script>

</body>
</html>

? Le variabili locali sono accessibili solo dall?interno della funzione in cui sono dichiarate.
? JavaScript Block Scope
? Le variabili dichiarate con la varparola chiave non possono avere Ambito di blocco .
? Le variabili dichiarate all?interno di un blocco {} sono accessibili dall?esterno del blocco.

https://www.w3schools.com/js/tryit.asp?filename=tryjs_es6_let

<!DOCTYPE html>
<html>
<body>

<h2>Declaring a Variable Using let</h2>

<p id="demo"></p>

<script>
var x = 10;
// Here x is 10
{
let x = 2;
// Here x is 2
}
// Here x is 10
document.getElementById("demo").innerHTML = x;
</script>

</body>
</html>

https://www.w3schools.com/js/tryit.asp?filename=tryjs_let_for_loop1

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript let</h2>

<p id="demo"></p>
<p id="demo2"></p>
<script>
var i = 5;
document.getElementById("demo2").innerHTML = i;

for (var i = 0; i < 10; i++) {
// some statements
}
document.getElementById("demo").innerHTML = i;
</script>

https://www.w3schools.com/js/tryit.asp?filename=tryjs_let_for_loop2

</body>
</html>

? Ulilizzando LET

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript let</h2>

<p id="demo"></p>

<script>
let i = 5;
for (let i = 0; i < 10; i++) {
// some statements
}
document.getElementById("demo").innerHTML = i;
</script>

</body>
</html>

? window.carName;
https://www.w3schools.com/js/tryit.asp?filename=tryjs_let_scope

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Global Variables</h2>

<p>In HTML, global variables defined with <b>var</b>, will become window variables.</p>

<p id="demo"></p>

<script>
var carName = "Volvo";

// code here can use window.carName
document.getElementById("demo").innerHTML = "I can display " + window.carName;
</script>

</body>
</html>


? Utilizzo LET
https://www.w3schools.com/js/tryit.asp?filename=tryjs_let_global

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Global Variables</h2>

<p>In HTML, global variables defined with <b>let</b>, will not become window variables.</p>

<p id="demo"></p>

<script>
let carName = "Volvo";

// code here can use window.carName
document.getElementById("demo").innerHTML = "I can not display " + window.carName;
</script>

</body>
</html>

? ? possibile modificare le propriet? di un oggetto costante:

https://www.w3schools.com/js/tryit.asp?filename=tryjs_const_object

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript const</h2>

<p>Declaring a constant object does NOT make the objects properties unchangeable:</p>

<p id="demo"></p>

<script>
// Create an object:
const car = {type:"Fiat", model:"500", color:"white"};

// Change a property:
car.color = "red";

// Add a property:
car.owner = "Johnson";

// Display the property:
document.getElementById("demo").innerHTML = "Car owner is " + car.owner;
</script>

</body>
</html>


? Ma NON puoi riassegnare un oggetto costante:
https://www.w3schools.com/js/tryit.asp?filename=tryjs_const_object_assign

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript const</h2>

<p>But you can NOT reassign a constant object:</p>

<p id="demo"></p>

<script>
try {
const car = {type:"Fiat", model:"500", color:"white"};
car = {type:"Volvo", model:"EX60", color:"red"};
}
catch (err) {
document.getElementById("demo").innerHTML = err;
}
</script>

</body>
</html>


? Puoi cambiare gli elementi di un array costante:
https://www.w3schools.com/js/tryit.asp?filename=tryjs_const_array

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript const</h2>

<p>Declaring a constant array does NOT make the elements unchangeble:</p>

<p id="demo"></p>

<script>
// Create an Array:
const cars = ["Saab", "Volvo", "BMW"];

// Change an element:
cars[0] = "Toyota";

// Add an element:
cars.push("Audi");

// Display the Array:
document.getElementById("demo").innerHTML = cars;
</script>

</body>
</html>

? Ma NON puoi riassegnare un array costante:
https://www.w3schools.com/js/tryit.asp?filename=tryjs_const_array_assign

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript const</h2>

<p>You can NOT reassign a constant array:</p>

<p id="demo"></p>

<script>
try {
const cars = ["Saab", "Volvo", "BMW"];
cars = ["Toyota", "Volvo", "Audi"];
}
catch (err) {
document.getElementById("demo").innerHTML = err;
}
</script>

</body>
</html>











( letjavascript.html )- by Paolo Puglisi - Modifica del 17/12/2023