'; document.writeln(my_chunk); } } // --> --> Javascript-snippets
Javascript Noteblock
Javascript Reversing
Taxonomy
~
snippets
Snippets

Various "snippets" about javascripting

A fairly important project, started on 09 March 1999.
Last updated: 06/11/99

From time to time you may come across some rather interesting javascript-things, which are too small to write an essay, BUT too important to vanish in the dark codewood. So here I'm gonna start this section with some information about the use of global and local variables. This page lives from your contributions. So, please, if you have something useful to add, send it to me !

You'll find here following snippets:

bulletVARIABLES - Local and Global, by The Seeker 09 March 1999
   (careful with that axe, eugene !)
bullet Lines of Defense Against Code Theft, (beginners only), fished from the web 06 Nov 1999


Here begin the SNIPPETS
VARIABLES - Global and Local - By The Seeker
The stand-alone code can be found here : Var-Declaration-Test-Program

Load it down and play with it !  Just reading my crap won't bring you very far ! 



Here is what The Sandman already told you about variables : 



Local variables are those variables that exist ONLY inside the function where it was created. Once program execution leaves the function then the variable(s) created inside this function are discarded and never used again. This makes good programming practice to use this kind of variable if it is not going to be needed elsewhere within the script.

Global variables once defined, exist within the entire script, they can therefore be changed or read by any function within the script itself and is often used as a kind of 'counter' and or to maintain the results from having a string or number processed by one or more functions. A short extension by me : - Within a function, a local declared variable has more rights than a global variable with the same name. So you can - within a function - pass a value to a global variable and change this local variable, under the condition that there was no local variable with the same name declared. - Within a function you cant't access variables, which are local variables in another function. So far, so good (isn't it ? :) Let me bring some light into this darkness (and show you some evil traps) : Javascript is a rather 'cool' language concerning the strictness of the use of variables. But this 'coolness' has its prize : you gotta be extremely careful with the use of the variables. Look at this code : (you should have a printing of _global.htm lying next to your console) var TestOne='Global_One' TestTwo='Global_Two' TestThree=null showglobal('Before'); var TestOne='Global_One'......:-- this is a DECLARATION TestTwo='Global_Two'...........:-- this is an ASSIGNMENT TestThree=null.....................:-- just another assignment We declare one variable and we assign two variables. Check this out :

Nothing sensational up to now. So let's dive into a function. Here's the code : function Local_Pub() { var TestThree='test_three' go('Local_Test_One'); alert ('Local_Test_Two : '+ TestOne + ' * ' + TestTwo + ' * ' + TestThree + ' ') var TestOne='Local_One' TestTwo='Local_Two' TestThree='Local_Three' alert ('Local_Test_Three : '+ TestOne + ' * ' + TestTwo + ' * ' + TestThree + ' ') go('Local_Test_Four'); } Let's wade through this code step by step. We have a function : function Local_Pub() { var TestThree='test_three'.......and we declare a local variable go('Local_Test_One');............after this declaration we call another function, to show us the new values. The alert-box (Local_Test_One) gives us this : TestOne : Global_One *** TestTwo : Global_Two *** TestThree : Null Remember : TestThree is a local variable, which can't be shown in another function ! On with the code : alert ('Local_Test_Two : '+ TestOne + ' * ' + TestTwo + ' * ' + TestThree + ' ') Local_Test_Two shows us : TestOne : undefined *** TestTwo : Global_Two *** TestThree : test_Three This local alert-box shows us three things : 1. The local variable 'TestThree' now has a value within the function (surprise ;) 2. The global variable 'TestTwo' (which was assigned) shows its value (surprise ;) 3. The global value 'TestOne' (which was declared) is undefined !!!! Don't ask me why! This is really strange ! (Or am I just making a mistake ??) On with the code : var TestOne='Local_One'........:-- declaration of a local variable TestTwo='Local_Two'............:---assignment of a local variable TestThree='Local_Three'........:---just another assignment Let's make some alert (within the function) : alert ('Local_Test_Three : '+ TestOne + ' * ' + TestTwo + ' * ' + TestThree + ' ') This box (Local_Test_Three) shows us : TestOne : Local_One *** TestTwo : Local_Two *** TestThree : Local_Three So this goes to show, that the local variables have more 'rights' than the global ones. (AND, don't forget : you can change the value of a global variable within a function, if there was no declaration of a local variable with the same name ! Next line : go('Local_Test_Four'); Once again we call another function to show us some variables, and we get (Local_Test_Four) : TestOne : Global_One *** TestTwo : Local_Two *** TestThree : null Funny, isn'*t it ? The value of the global variable 'TestTwo' has been changed (forever), just because this global variable was assigned, but not declared !! From the main-program we make a last test : .... onClick="showglobal('after')" This alert ("after") gives us : TestOne : Global_One *** TestTwo : Local_Two *** TestThree : null and just goes to show that the global variable 'TestTwo' has changed it's value. O.k., that's it. What was this crap for, you may ask ? Well, the only thing I can tell you : be careful with declarations and assignments of variables. If you are writing some code, test the values of your variables with an alert-box. Better one time too much, than an evil surprise ! The Seeker

Addendum
24.04.1999
Got it !! Variables which should only be visible in functions have to be declared !
So if you use a variable without the var declaration, this variable will be 'visible' in all the other functions !!
In other words : only variables, which are declared with 'var' are local function-variables !

Original format of this tut by (c) fravia+ 97 All rights reversed.

Page started by The Seeker
Page created: 9th March 1999

Logo