You are here: irt.org | FAQ | JavaScript | Function | Q1321 [ previous next ]
Take for example the following code:
<script language="JavaScript"><!-- // declare global variable var variable1; // declare and initialise global variables var variable2 = '2'; variable3 = '3'; document.write('1 = ' + variable1 + '<br>'); // 1 = undefined document.write('2 = ' + variable2 + '<br>'); // 2 = 2 document.write('3 = ' + variable3 + '<br>'); // 3 = 3 document.write('6 = ' + variable6 + '<br>'); // 6 = undefined document.write('6 = ' + variable6 + '<br>'); // JavaScript Error: variable6 is not defined. function myFunction() { // declare and initialise local variables var variable1 = '1 amended'; var variable2; // initialise global variable value variable3 = '3 amended'; // declare local variable var variable4; // declare and initialise local variable var variable5 = '5'; // declare and initialise global variable variable6 = '6'; document.write('1 = ' + variable1 + '<br>'); // 1 = 1 amended document.write('2 = ' + variable2 + '<br>'); // 2 = undefined document.write('3 = ' + variable3 + '<br>'); // 3 = 3 amended document.write('4 = ' + variable4 + '<br>'); // 4 = undefined document.write('5 = ' + variable5 + '<br>'); // 5 = 5 document.write('6 = ' + variable6 + '<br>'); // 6 = 6 document.write('7 = ' + variable7 + '<br>'); // 7 = undefined document.write('8 = ' + variable8 + '<br>'); // 8 = undefined // declare local variable var variable7; // declare and initialise local variable var variable8 = '8'; document.write('8 = ' + variable8 + '<br>'); // 8 = 8 document.write('9 = ' + variable9 + '<br>'); // JavaScript Error: variable9 is not defined. } myFunction(); document.write('1 = ' + variable1 + '<br>'); // 1 = undefined document.write('2 = ' + variable2 + '<br>'); // 2 = 2 document.write('3 = ' + variable3 + '<br>'); // 3 = 3 amended document.write('4 = ' + variable4 + '<br>'); // JavaScript Error: variable4 is not defined. document.write('5 = ' + variable5 + '<br>'); // JavaScript Error: variable5 is not defined. document.write('6 = ' + variable6 + '<br>'); // 6 = 6 document.write('7 = ' + variable7 + '<br>'); // JavaScript Error: variable7 is not defined. document.write('8 = ' + variable8 + '<br>'); // JavaScript Error: variable8 is not defined. document.write('9 = ' + variable9 + '<br>'); // JavaScript Error: variable9 is not defined. //--></script>
If we declare but not initalise a variable outside a function it should be global in scope, but undefined until the point at which it is initialised - e.g. variable1.
If we declare (with or without the var keyword) and initialise a variable outside a function it should be global in scope and accessible immediately - e.g. variable2 and variable3
If we declare (and optionally initialise) a variable with the var keyword inside a function, even though a global variable of the same name exists outside of the function, then it should be local in scope and not effect the value of the global variable - e.g. variable1 and variable2.
If we declare and initialise a variable without the var keyword inside a function, if a global variable of the same name exists outside of the function, then it should effect the value of the global variable, and still remain global - e.g. variable3.
If we declare but not initalise a variable with the var keyword inside a function it should be local in scope, but undefined across the complete function until the point at which it is initialised - e.g. variable4 and variable7.
If we declare and initialise a a variable with the var keyword inside a function it should be local in scope and accessible immediately - e.g. variable5.
If we declare and initialise a variable without the var keyword inside a function it should be global in scope, but not accessible prior to the function being invoked - e.g. variable6.
If we declare and initalise a variable with the var keyword inside a function it should be local in scope, but undefined across the complete function until the point at which it is initialised - e.g. variable8.