difference between var and let in javascript
/*
Therefore,
var:
-can be declared outside any function to be used inside any function
-can be declared inside any function or any other {} which are of only if or if-else or switch etc. and can be used anywhere inside the function
-can be changed again and again anywhere
let:
-can be declared outside any function to be used inside any function
-if declared inside any function or any other {} which are of only if or if-else or switch etc. and can't be used anywhere inside the function and can be only used inside statement
- can be changed again and again only inside the statement in which they are made in
const:
-can be declared outside any function to be used inside any function
-can be declared inside any function or any other {} which are of only if or if-else or switch etc. and can be used anywhere inside the function
-cannot be changed again and agan anywhere, if tried to, will result in an error
*/
// var has function scope. (this variable can be accssed from anywhere inside function)
// let & const has block scope.(this variable can not be accessed out of block. means outside of if else but inside of a function it can not be accessed. only inside that block we can access this variable)
// https://www.youtube.com/watch?v=--Vh17ocC_s
function func(){
if(true){
var A = 1;
let B = 2;
}
A++; // 2 --> ok, inside function scope
B++; // B is not defined --> not ok, outside of block scope
return A + B; // NaN --> B is not defined
}
//example 2
var variable1 // declared using var
const variable2 // declared using const
myFunction1();
function myFunction1() {
variable1 = "hello!";
console.log(variable1);
// "hello!"
}
myFunction2();
function myFunction2() {
variable2 = "hello!";
// error: variable2 is a constant and can not be redifined
}
myFunction3(true);
myFunction3(codition) {
if(condition) {
let variable3 = "helo!" // declared using const
}
variable3 = "hello!";
// error: variable3 is out of scope
}