Created
November 6, 2018 20:50
-
-
Save adamcrampton/1d3790127c57eb0c1a6b7fcd3403d81e to your computer and use it in GitHub Desktop.
Example code describing the difference between let and var in JavaScript
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// They are very similar when used like this outside a function block. | |
let me = 'go'; // globally scoped | |
var i = 'able'; // globally scoped | |
// Global variables defined with let will not be added as properties on the global window object like those defined with var | |
console.log(window.me); // undefined | |
console.log(window.i); // 'able' | |
// They are identical when used like this in a function block. | |
function ingWithinEstablishedParameters() { | |
let terOfRecommendation = 'awesome worker!'; //function block scoped | |
var sityCheerleading = 'go!'; //function block scoped | |
} | |
// let is only visible in the for() loop and var is visible to the whole function. | |
function allyIlliterate() { | |
//tuce is *not* visible out here | |
for( let tuce = 0; tuce < 5; tuce++ ) { | |
//tuce is only visible in here (and in the for() parentheses) | |
//and there is a separate tuce variable for each iteration of the loop | |
} | |
//tuce is *not* visible out here | |
} | |
function byE40() { | |
//nish *is* visible out here | |
for( var nish = 0; nish < 5; nish++ ) { | |
//nish is visible to the whole function | |
} | |
//nish *is* visible out here | |
} | |
// Assuming strict mode, var will let you re-declare the same variable in the same scope. On the other hand, let will not: | |
'use strict'; | |
let me = 'foo'; | |
let me = 'bar'; // SyntaxError: Identifier 'me' has already been declared | |
'use strict'; | |
var me = 'foo'; | |
var me = 'bar'; // No problem, `me` is replaced. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment