On Github devcsrj / slides-javascript
By @devcsrj
What you need: A browser
// This is a one-liner comment /* This is another comment */ // this one too /* * Multiple-lined comment. * Yep. */
// Legal identifiers var i, my_variable_name, v13, _dummy, $str;
var a a = 3 console.log(a) // Interpreted as: var a; a = 3; console.log(a); var y = x + f (a+b).toString() // Interpreted as: var y = x + f(a+b).toString();
var x // Declare a variable named x x = 0; // Now variable x has the value of 0 x // => 0: A variable evaluates to its value // JS supports several types of values x = 1; // Numbers x = 0.01; // One number type for integer and reals x = "hello world"; // Strings x = 'JavaScript'; // Single quote marks also delimit Strings x = true; // Boolean values x = false; x = null; // A special value denoting "no value" x = undefined; // Undefined is like null
7 == 7 // true 7 === "7" // false 7 === 7 // true "auf" != "hau" // true "auf" !== "hau" // true 7 > 7 // false 7 >= 7 // true 7 < 1 // false 7 <= 1 // false
if( condition ) { // Executes if condition is true } else { // Else what } switch( expression ) { case 'value1': // Execute code if expression is 'value1' break; case 'value2': // Execute code if expression is 'value2' break; case default: // Execute code if expression does not match any // `default` is a reserved keyword // `break` optional, since it is the end of switch }
while( condition ) { // Execute this every time condition is true } for( init ; condition ; iterator ){ // Execute until condition is met }
var universities = [ "auf", "hau", "spcf", "ama" ] var bankAccounts = [ 10001, 10002, 10003, 10004 ] // You can mix datatypes var stuff = [ 5, 'random', [], "I wonder who does this", true, 50.0 ] // Methods - @see Array.prototype
function average ( arr ) { var mean = 0; for( var i = 0; i < arr.length; i ++ ) mean += arr[ i ]; return mean / arr.length } average ( [ 85, 88, 75, 83 ] ); // 82.75 var madEcho = function ( what ) { return what.toUpperCase() + "!!!!" } madEcho // prints function declaration madEcho ( "hi" ); // "HI!!!!"
var greet = function ( greeting, name ){ alert( greeting + name ); } greet // prints function declration greet( 'Hello Master ', 'RJ' ); // IIFE (iffy) - Immediately Invoked Function Expression (function( greeting, name ){ alert( greeting + name ); })( 'Hello Master ', 'RJ' );
var person = { firstName : "Reijhanniel Jearl", lastName : "Campos", age : 20, likes : [ "pizza", "all-meat pizza", "more pizza" ], introduce : function (){ return "Hi, I am " + this.firstName + " " + this.lastName + ", " + this.age + ". I like " + this.likes } } person.introduce()
is the main entry point to all client-side JavaScript features and APIs.
window.location = "http://github.com" // The alert() method is a method of the `window` object // Same as: setTimeout( function() { alert( "Sup" ) }, 2000 ); location document // we focus on this!
Try the following:
document // to see the document object model // Adds a `style` attribute to <body> tag document.body.style.backgroundColor = 'yellow' // Sets a new value for <title> tag document.title = "Look at the tab name!" // Returns an array of <section> tags document.getElementsByTagName( "section" ); // Sets HTML content of element with id of `caption-id`, document.getElementById( "caption-id" ).innerHTML = "Yo"
// try `Inspect Element`! var btn = document.getElementById( "btn-for-event" ); var poke = function( event ){ // expect an `event` variable event.target.innerHTML = "You poked me!" } // attach `poke` function `onclick` btn.addEventListener( "click", poke ); // or: btn.onclick = poke; // attach an anonymous function `onclick` btn.addEventListener( "click", function( event ) { alert( "Poked you back!" ); }); // remove `poke` function `onclick` btn.removeEventListener( "click", poke ); // More Events @see MDN Event ref
<!DOCTYPE html> <html> <head>...</head> <body> ... <script> // Do magic </script> </body> </html>
<div id="div1">The text above has been created dynamically.</div> <script> document.body.onload = addElement; function addElement () { // create a new div element and give it some content var newDiv = document.createElement( "div" ); var newContent = document.createTextNode("Hi there and greetings!"); //add the text node to the newly created div. newDiv.appendChild(newContent); // add the newly created element and its content into the DOM var currentDiv = document.getElementById( "div1" ); document.body.insertBefore( newDiv, currentDiv ); } </script>