SlideShare una empresa de Scribd logo
1 de 35
Descargar para leer sin conexión
JavaScript




                                                                 EESTEC Summer School 2012
     &
  jQuery
Matic Jesenovec,
Chairman of EESTEC LC Ljubljana & Web Developer at Abakus Plus
                                                                       1
Introduction




                                                                 EESTEC Summer School 2012
• THE scripting language of the Web
• It copies many names from Java, otherwise they are unrelated
• Add functionality, validate forms, communicate with the
  server, provide better UX
• Runs on client side
• Web page should always be functional also without JS
• Today you can sometimes also use HTML5 and CSS3




                                                                       2
Embeding & linking JS in HTML files




                                                           EESTEC Summer School 2012
• <script language="javascript" type= "text/javascript">
       // some code
  </script>

• <script language="javascript" src="script.js">

• <noscript>
      This page looks way cooler with JavaScript
  </noscript>


                                                                 3
Comments




                        EESTEC Summer School 2012
• // one line comment

• /*
  multiple
  lines
  comment
  */




                              4
Variables




                                                                  EESTEC Summer School 2012
•   Locations where you store information
•   The name of your variable can contain any letter or number
•   Within a function you can add var, to create local variable
•   You can change the value of a variable at anytime
•   JS is loosely typed – you don‘t need to tell which type of
    information you will assign to a variable
    • Exceptions: Array and Date


•   x = 3;
•   s = "This is a string";
•   emptyArray = new array();                                           5
•   something = TRUE;
Variables: Datatypes




                                     EESTEC Summer School 2012
•   String – "Something"
•   Number – 42
•   Boolean – TRUE, FALSE
•   Object
    • Array – new Array(1, 2, 3);
    • Date – new Date(1990, 2, 6);
    • ...

• Null
• Undefined
                                           6
Datatypes: Arrays




                                                              EESTEC Summer School 2012
• There are 1 types of people in the world. Those who start
  counting at 0 and those who start counting at 1.

vehicles = new Array("car", "truck", "van");
vehicles[0] // car
vehicles[3] = "bicycle";
vehicles[vehicles.length-1]



anotherArray= ["First", "Second", "Last"];

                                                                    7
Conditional statements




                                                                    EESTEC Summer School 2012
• The ability to do one thing if something is true and do another
  thing if it is false

x = 5;
if(x == 10)
{
         document.writelin("X equals 10");
}
else
{
         document.writelin("X doesn‘t equal 10");
}
                                                                          8
Conditionals: Switch




                                                       EESTEC Summer School 2012
fruits = new Array("Banana", "Apple", "Strawberry");
for(fruit in fruits){
   switch(fruit){
         case "Banana ":
                    document.writelin("Yellow!");
                    break;
         case "Strawberry ":
                    document.writelin("Red!");
                    break;
         default:
                    document.writelin("Unknown!");
   }                                                         9
}
Operators




                                                                  EESTEC Summer School 2012
• + (Addition): Used to add numeric values or combine 2 strings
  of text
• - (Subtraction): Used to subtract values
• * (Multiplication): Used to multiply values
• / (Division): Used to divide values
• % (Modulus): Used to return the remainder of a division of
  two numbers.
  • Example: 15 % 7 = 1
• ++ (Increment): Shorthand way to add one to a value.
  • Example: number++;
• -- (Decrement): Shorthand way to subtract one from a value
                                                                  10
Operators: Comparison




                                              EESTEC Summer School 2012
•   x == y: x equals y
•   x < y: x is less than y
•   x > y: x is greater than y
•   x <= y: x is less than or equal to y
•   x >= y: x is greater than or equal to y
•   x != y: x is not equal to y




                                              11
Operators: Logical




                                                                      EESTEC Summer School 2012
• && (AND): used to check if both values are true
  • Example: if ( x < y && a > b )

• || (OR): used to check if at least one of the values is true

• ! (NOT): used to check if values are not equal to the variable it
  is being used on
  • Example: if(!x)




                                                                      12
Operators: Usefull tricks




                                                                       EESTEC Summer School 2012
• x += y; Adds x and y, then stores that value in the variable x
• x -= y; Subtracts y from x, then stores that value in the variable
  x

• x = (y < 5) ? 10 : 15; Shorthand way to test and then assign a
  value based on the test.
  • If y<5 then x = 10, else x = 15




                                                                       13
Loops




                                                                   EESTEC Summer School 2012
• Perform a repetitive action over and over until some condition
  is met




                                                                   14
Loops: For




                                                                    EESTEC Summer School 2012
• for (initial expression; condition to be met; edit the value of
  expression)
  {
        javascript code…
  }

for (var i = 1; i < 10; i++)
{
        document.writelin(i);
}


                                                                    15
Loops: While




                                EESTEC Summer School 2012
• while (condition)
  {
       code…
       iterator
  }

var i = 1;
while (i < 10)
{
        document.writelin(i);
        i++;
}
                                16
Loops: Do-While




                                EESTEC Summer School 2012
• do {
         code…
  }
  while (i < 10)

var i = 1;
do{
        document.writelin(i);
        i++;
}
while(i < 10)
                                17
Loops: For-In




                                                                EESTEC Summer School 2012
• for (var objectVariable in objectItself)
  {
        code…
  }

var theUniverse = array("Mercury", "Venus", "Earth", "Mars");
for(var planet in theUniverse)
{
        document.writelin(planet);
}


                                                                18
Functions




                                                                EESTEC Summer School 2012
• Groupings of statements that you can type once and then use
  over and over again.

• function nameOfFunction(parameter1, parameter2)
  {
       javascript code…
       return value;
  }




                                                                19
Functions: Example




                                                  EESTEC Summer School 2012
function addThese(numberOne, numberTwo)
{
       var total = numberOne + numberTwo;
       return total;
}

firstNumber = 3;
secondNumber = 2;
addition = addThese(firstNumber, secondNumber);



                                                  20
Built-in functions




                                       EESTEC Summer School 2012
•   array.length
•   string.charAt(index)
•   string.indexOf(value)
•   string.split(separator)
•   string.substring(index1, index2)
•   string.length()
•   string.toLowerCase()
•   number.toString()
•   date.getDay()
•   Math.round(x)
                                       21
The Document Object Model




                                                                EESTEC Summer School 2012
• DOM defines logical structure of HTML (XML) documents
• It enables you to build, modify, navigate and add or delete
  HTML elements and content
• The DOM itself is language-independent




                                                                22
Event handlers




                                                                    EESTEC Summer School 2012
• JavaScript code that is not added inside the <script> tags, but
  rather, inside HTML tags.
• They execute JS when something happens

•   onClick
•   onMouseOver
•   onMouseOut
•   onUnload
•   onLoad (only for <body> and <img>)

<a href="http://eestec.net" onClick="alert('hello!')">EESTEC</a>    23
Firebug debugging




                                                        EESTEC Summer School 2012
•   www.getfirebug.com
•   Find all included JS files easily
•   It shows errors that accure during the execution
•   Set a breakpoint and pause execution at any point
    • Continue one line at a time
    • Observe variable values
• Console to execute JS on the run
• console.log(„text“);



                                                        24
jQuery

25




     EESTEC Summer School 2012
Introduction




                                                                  EESTEC Summer School 2012
• jQuery is a JavaScript Library that simplifies HTML document
  traversing, event handling, animating, and Ajax interactions.

• Download it from jquery.com and include it in your web page

• $(document).ready(function(){
      // Your code here
  });




                                                                  26
Selectors




                                                       EESTEC Summer School 2012
• Used for matching a set of elements in a document.

•   * (all)
•   .class
•   #id
•   :contains()
•   :empty

$(".myClass").css("color","red");

                                                       27
Traversing




                                                            EESTEC Summer School 2012
• In addition to selectors, these methods help you select
  elements.

•   children()
•   each()
•   first()
•   parent()

$("div").add("p");

$('li').each(function(index) {
         console.log(index + ': ' + $(this).text());        28
});
Attributes




                                                             EESTEC Summer School 2012
• Methods, used to get and set DOM attributes of elements.

•   addClass()
•   attr()
•   hasClass()
•   removeClass()
•   html()
•   val()

$("#button").removeClass("enabled").addClass("disabled");
                                                             29
Manipulation




                                                           EESTEC Summer School 2012
• Methods for manipulating the DOM. Changing attributes,
  setting style properties, modifying elements,...

•   append()
•   css()
•   remove()
•   width()
•   empty()

$( this ).css( "width","+=200" );
                                                           30
CSS




                                                           EESTEC Summer School 2012
• Methods, used to get and set CSS-related properties of
  elements.

•   css()
•   position()
•   addClass()
•   hasClass()

p = $("p:first");
position = p.position();
                                                           31
Events




                                                               EESTEC Summer School 2012
• Methods, used to register behavior to take effect when the
  user interacts with the browser.

•   bind(eventType [, eventData], handler(eventObject))
•   click(eventData], handler(eventObject))
•   keypress([eventData], handler(eventObject))
•   hover(handler(eventObject))
•   ...

$('#clickMe').bind('click', function() {
        console.log ('User clicked me!');                      32
});
Effects




                                                               EESTEC Summer School 2012
• Techniques for adding animation to a web page

•   animate(properties [, duration] [, easing] [, complete])
•   fadeIn() / fadeOut([duration] [, callback])
•   hide() / show()
•   slideDown()
•   toggle()

$('#book').animate({
       opacity: 0.25, left: '+=50', height: 'toggle' },
       5000,
       function() {
               console.log('Animation complete.');             33
});
jQuery plugins




                              EESTEC Summer School 2012
• jQuery UI
  •   Dragging
  •   Resizing
  •   Sorting
  •   Datepicker (calendar)
  •   Progressbar
  •   ...




                              34
Thank You!

35




     EESTEC Summer School 2012

Más contenido relacionado

Similar a EESTEC Summer School 2012 - java script & jquery - Matic Jesenovec

Mock Objects from Concept to Code
Mock Objects from Concept to CodeMock Objects from Concept to Code
Mock Objects from Concept to Code
Rob Myers
 
SOLID, DRY, SLAP design principles
SOLID, DRY, SLAP design principlesSOLID, DRY, SLAP design principles
SOLID, DRY, SLAP design principles
Sergey Karpushin
 
Automatic Assessment In Math Education
Automatic Assessment In Math EducationAutomatic Assessment In Math Education
Automatic Assessment In Math Education
telss09
 

Similar a EESTEC Summer School 2012 - java script & jquery - Matic Jesenovec (20)

Matlab programming
Matlab programmingMatlab programming
Matlab programming
 
AVR_Course_Day3 c programming
AVR_Course_Day3 c programmingAVR_Course_Day3 c programming
AVR_Course_Day3 c programming
 
Javascript
JavascriptJavascript
Javascript
 
JS Responsibilities
JS ResponsibilitiesJS Responsibilities
JS Responsibilities
 
Mock Objects from Concept to Code
Mock Objects from Concept to CodeMock Objects from Concept to Code
Mock Objects from Concept to Code
 
Java 101
Java 101Java 101
Java 101
 
Windowing functions session for Slovak SQL Pass & BI
Windowing functions session for Slovak SQL Pass & BIWindowing functions session for Slovak SQL Pass & BI
Windowing functions session for Slovak SQL Pass & BI
 
Ceylon - the language and its tools
Ceylon - the language and its toolsCeylon - the language and its tools
Ceylon - the language and its tools
 
Introduction to java 101
Introduction to java 101Introduction to java 101
Introduction to java 101
 
SOLID, DRY, SLAP design principles
SOLID, DRY, SLAP design principlesSOLID, DRY, SLAP design principles
SOLID, DRY, SLAP design principles
 
Automatic Assessment In Math Education
Automatic Assessment In Math EducationAutomatic Assessment In Math Education
Automatic Assessment In Math Education
 
Class[2][29th may] [javascript]
Class[2][29th may] [javascript]Class[2][29th may] [javascript]
Class[2][29th may] [javascript]
 
Java
Java Java
Java
 
The Present and Future of the Web Platform
The Present and Future of the Web PlatformThe Present and Future of the Web Platform
The Present and Future of the Web Platform
 
Building Domain-Specific Decision Models
Building Domain-Specific Decision ModelsBuilding Domain-Specific Decision Models
Building Domain-Specific Decision Models
 
Decision CAMP 2014 - Jacob Feldman - Building Domain-Specific Decision Models
Decision CAMP 2014 - Jacob Feldman - Building Domain-Specific Decision ModelsDecision CAMP 2014 - Jacob Feldman - Building Domain-Specific Decision Models
Decision CAMP 2014 - Jacob Feldman - Building Domain-Specific Decision Models
 
Return of c++
Return of c++Return of c++
Return of c++
 
Java Review
Java ReviewJava Review
Java Review
 
Beyond JavaScript Frameworks: Writing Reliable Web Apps With Elm - Erik Wende...
Beyond JavaScript Frameworks: Writing Reliable Web Apps With Elm - Erik Wende...Beyond JavaScript Frameworks: Writing Reliable Web Apps With Elm - Erik Wende...
Beyond JavaScript Frameworks: Writing Reliable Web Apps With Elm - Erik Wende...
 
Hello my name is DAX
Hello my name is DAXHello my name is DAX
Hello my name is DAX
 

Más de EESTEC LC Trieste

Más de EESTEC LC Trieste (20)

ESS 2013: Osmiza may gic
ESS 2013: Osmiza may gicESS 2013: Osmiza may gic
ESS 2013: Osmiza may gic
 
ESS 2013: Whats art
ESS 2013: Whats artESS 2013: Whats art
ESS 2013: Whats art
 
ESS 2013: Osmizeyourself
ESS 2013: OsmizeyourselfESS 2013: Osmizeyourself
ESS 2013: Osmizeyourself
 
ESS 2013: Triesting around
ESS 2013: Triesting aroundESS 2013: Triesting around
ESS 2013: Triesting around
 
ESS 2013: FRIVEGI
ESS 2013: FRIVEGIESS 2013: FRIVEGI
ESS 2013: FRIVEGI
 
ESS 2013: Catchmybus
ESS 2013: CatchmybusESS 2013: Catchmybus
ESS 2013: Catchmybus
 
Ankara
AnkaraAnkara
Ankara
 
EESTEC Summer School 2012 - Windows Phone 7 Applications- Davide Luzzu
EESTEC Summer School 2012 - Windows Phone 7 Applications- Davide LuzzuEESTEC Summer School 2012 - Windows Phone 7 Applications- Davide Luzzu
EESTEC Summer School 2012 - Windows Phone 7 Applications- Davide Luzzu
 
EESTEC Summer School 2012 - Windows Phone 7 design - Davide Luzzu
EESTEC Summer School 2012 - Windows Phone 7 design - Davide LuzzuEESTEC Summer School 2012 - Windows Phone 7 design - Davide Luzzu
EESTEC Summer School 2012 - Windows Phone 7 design - Davide Luzzu
 
EESTEC Summer School 2012 - Entity Framework - Erni Durdevic
EESTEC Summer School 2012 - Entity Framework - Erni DurdevicEESTEC Summer School 2012 - Entity Framework - Erni Durdevic
EESTEC Summer School 2012 - Entity Framework - Erni Durdevic
 
EESTEC Summer School 2012 - Photoshop - Giulia Galvani
EESTEC Summer School 2012 - Photoshop - Giulia GalvaniEESTEC Summer School 2012 - Photoshop - Giulia Galvani
EESTEC Summer School 2012 - Photoshop - Giulia Galvani
 
EESTEC Summer School 2012 - Logo Design - Darija Dašić
EESTEC Summer School 2012 - Logo Design - Darija DašićEESTEC Summer School 2012 - Logo Design - Darija Dašić
EESTEC Summer School 2012 - Logo Design - Darija Dašić
 
EESTEC Summer School 2012 - Vector Design - Darija Dašić
EESTEC Summer School 2012 - Vector Design - Darija DašićEESTEC Summer School 2012 - Vector Design - Darija Dašić
EESTEC Summer School 2012 - Vector Design - Darija Dašić
 
EESTEC Summer School 2012 - Branding Guidelines - Milosh Pivic
EESTEC Summer School 2012 - Branding Guidelines - Milosh PivicEESTEC Summer School 2012 - Branding Guidelines - Milosh Pivic
EESTEC Summer School 2012 - Branding Guidelines - Milosh Pivic
 
EESTEC Summer School 2012 - Group 7 - red cells
EESTEC Summer School 2012 - Group 7 - red cellsEESTEC Summer School 2012 - Group 7 - red cells
EESTEC Summer School 2012 - Group 7 - red cells
 
EESTEC Summer School 2012 - Group 8 - tridentinas
EESTEC Summer School 2012 - Group 8 - tridentinasEESTEC Summer School 2012 - Group 8 - tridentinas
EESTEC Summer School 2012 - Group 8 - tridentinas
 
EESTEC Summer School 2012 - Group 6 - createam
EESTEC Summer School 2012 - Group 6 - createamEESTEC Summer School 2012 - Group 6 - createam
EESTEC Summer School 2012 - Group 6 - createam
 
EESTEC Summer School 2012 - Group 1 - grande
EESTEC Summer School 2012 - Group 1 - grandeEESTEC Summer School 2012 - Group 1 - grande
EESTEC Summer School 2012 - Group 1 - grande
 
EESTEC Summer School 2012 - Group 10 - vampire hunters
EESTEC Summer School 2012 - Group 10 - vampire huntersEESTEC Summer School 2012 - Group 10 - vampire hunters
EESTEC Summer School 2012 - Group 10 - vampire hunters
 
EESTEC Summer School 2012 - Group 9 - kuma
EESTEC Summer School 2012 - Group 9 - kumaEESTEC Summer School 2012 - Group 9 - kuma
EESTEC Summer School 2012 - Group 9 - kuma
 

Último

Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
ZurliaSoop
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
heathfieldcps1
 

Último (20)

Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)
 
Plant propagation: Sexual and Asexual propapagation.pptx
Plant propagation: Sexual and Asexual propapagation.pptxPlant propagation: Sexual and Asexual propapagation.pptx
Plant propagation: Sexual and Asexual propapagation.pptx
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptxHMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
 
Google Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptxGoogle Gemini An AI Revolution in Education.pptx
Google Gemini An AI Revolution in Education.pptx
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
80 ĐỀ THI THỬ TUYỂN SINH TIẾNG ANH VÀO 10 SỞ GD – ĐT THÀNH PHỐ HỒ CHÍ MINH NĂ...
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the Classroom
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024FSB Advising Checklist - Orientation 2024
FSB Advising Checklist - Orientation 2024
 
How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.ICT role in 21st century education and it's challenges.
ICT role in 21st century education and it's challenges.
 

EESTEC Summer School 2012 - java script & jquery - Matic Jesenovec

  • 1. JavaScript EESTEC Summer School 2012 & jQuery Matic Jesenovec, Chairman of EESTEC LC Ljubljana & Web Developer at Abakus Plus 1
  • 2. Introduction EESTEC Summer School 2012 • THE scripting language of the Web • It copies many names from Java, otherwise they are unrelated • Add functionality, validate forms, communicate with the server, provide better UX • Runs on client side • Web page should always be functional also without JS • Today you can sometimes also use HTML5 and CSS3 2
  • 3. Embeding & linking JS in HTML files EESTEC Summer School 2012 • <script language="javascript" type= "text/javascript"> // some code </script> • <script language="javascript" src="script.js"> • <noscript> This page looks way cooler with JavaScript </noscript> 3
  • 4. Comments EESTEC Summer School 2012 • // one line comment • /* multiple lines comment */ 4
  • 5. Variables EESTEC Summer School 2012 • Locations where you store information • The name of your variable can contain any letter or number • Within a function you can add var, to create local variable • You can change the value of a variable at anytime • JS is loosely typed – you don‘t need to tell which type of information you will assign to a variable • Exceptions: Array and Date • x = 3; • s = "This is a string"; • emptyArray = new array(); 5 • something = TRUE;
  • 6. Variables: Datatypes EESTEC Summer School 2012 • String – "Something" • Number – 42 • Boolean – TRUE, FALSE • Object • Array – new Array(1, 2, 3); • Date – new Date(1990, 2, 6); • ... • Null • Undefined 6
  • 7. Datatypes: Arrays EESTEC Summer School 2012 • There are 1 types of people in the world. Those who start counting at 0 and those who start counting at 1. vehicles = new Array("car", "truck", "van"); vehicles[0] // car vehicles[3] = "bicycle"; vehicles[vehicles.length-1] anotherArray= ["First", "Second", "Last"]; 7
  • 8. Conditional statements EESTEC Summer School 2012 • The ability to do one thing if something is true and do another thing if it is false x = 5; if(x == 10) { document.writelin("X equals 10"); } else { document.writelin("X doesn‘t equal 10"); } 8
  • 9. Conditionals: Switch EESTEC Summer School 2012 fruits = new Array("Banana", "Apple", "Strawberry"); for(fruit in fruits){ switch(fruit){ case "Banana ": document.writelin("Yellow!"); break; case "Strawberry ": document.writelin("Red!"); break; default: document.writelin("Unknown!"); } 9 }
  • 10. Operators EESTEC Summer School 2012 • + (Addition): Used to add numeric values or combine 2 strings of text • - (Subtraction): Used to subtract values • * (Multiplication): Used to multiply values • / (Division): Used to divide values • % (Modulus): Used to return the remainder of a division of two numbers. • Example: 15 % 7 = 1 • ++ (Increment): Shorthand way to add one to a value. • Example: number++; • -- (Decrement): Shorthand way to subtract one from a value 10
  • 11. Operators: Comparison EESTEC Summer School 2012 • x == y: x equals y • x < y: x is less than y • x > y: x is greater than y • x <= y: x is less than or equal to y • x >= y: x is greater than or equal to y • x != y: x is not equal to y 11
  • 12. Operators: Logical EESTEC Summer School 2012 • && (AND): used to check if both values are true • Example: if ( x < y && a > b ) • || (OR): used to check if at least one of the values is true • ! (NOT): used to check if values are not equal to the variable it is being used on • Example: if(!x) 12
  • 13. Operators: Usefull tricks EESTEC Summer School 2012 • x += y; Adds x and y, then stores that value in the variable x • x -= y; Subtracts y from x, then stores that value in the variable x • x = (y < 5) ? 10 : 15; Shorthand way to test and then assign a value based on the test. • If y<5 then x = 10, else x = 15 13
  • 14. Loops EESTEC Summer School 2012 • Perform a repetitive action over and over until some condition is met 14
  • 15. Loops: For EESTEC Summer School 2012 • for (initial expression; condition to be met; edit the value of expression) { javascript code… } for (var i = 1; i < 10; i++) { document.writelin(i); } 15
  • 16. Loops: While EESTEC Summer School 2012 • while (condition) { code… iterator } var i = 1; while (i < 10) { document.writelin(i); i++; } 16
  • 17. Loops: Do-While EESTEC Summer School 2012 • do { code… } while (i < 10) var i = 1; do{ document.writelin(i); i++; } while(i < 10) 17
  • 18. Loops: For-In EESTEC Summer School 2012 • for (var objectVariable in objectItself) { code… } var theUniverse = array("Mercury", "Venus", "Earth", "Mars"); for(var planet in theUniverse) { document.writelin(planet); } 18
  • 19. Functions EESTEC Summer School 2012 • Groupings of statements that you can type once and then use over and over again. • function nameOfFunction(parameter1, parameter2) { javascript code… return value; } 19
  • 20. Functions: Example EESTEC Summer School 2012 function addThese(numberOne, numberTwo) { var total = numberOne + numberTwo; return total; } firstNumber = 3; secondNumber = 2; addition = addThese(firstNumber, secondNumber); 20
  • 21. Built-in functions EESTEC Summer School 2012 • array.length • string.charAt(index) • string.indexOf(value) • string.split(separator) • string.substring(index1, index2) • string.length() • string.toLowerCase() • number.toString() • date.getDay() • Math.round(x) 21
  • 22. The Document Object Model EESTEC Summer School 2012 • DOM defines logical structure of HTML (XML) documents • It enables you to build, modify, navigate and add or delete HTML elements and content • The DOM itself is language-independent 22
  • 23. Event handlers EESTEC Summer School 2012 • JavaScript code that is not added inside the <script> tags, but rather, inside HTML tags. • They execute JS when something happens • onClick • onMouseOver • onMouseOut • onUnload • onLoad (only for <body> and <img>) <a href="http://eestec.net" onClick="alert('hello!')">EESTEC</a> 23
  • 24. Firebug debugging EESTEC Summer School 2012 • www.getfirebug.com • Find all included JS files easily • It shows errors that accure during the execution • Set a breakpoint and pause execution at any point • Continue one line at a time • Observe variable values • Console to execute JS on the run • console.log(„text“); 24
  • 25. jQuery 25 EESTEC Summer School 2012
  • 26. Introduction EESTEC Summer School 2012 • jQuery is a JavaScript Library that simplifies HTML document traversing, event handling, animating, and Ajax interactions. • Download it from jquery.com and include it in your web page • $(document).ready(function(){ // Your code here }); 26
  • 27. Selectors EESTEC Summer School 2012 • Used for matching a set of elements in a document. • * (all) • .class • #id • :contains() • :empty $(".myClass").css("color","red"); 27
  • 28. Traversing EESTEC Summer School 2012 • In addition to selectors, these methods help you select elements. • children() • each() • first() • parent() $("div").add("p"); $('li').each(function(index) { console.log(index + ': ' + $(this).text()); 28 });
  • 29. Attributes EESTEC Summer School 2012 • Methods, used to get and set DOM attributes of elements. • addClass() • attr() • hasClass() • removeClass() • html() • val() $("#button").removeClass("enabled").addClass("disabled"); 29
  • 30. Manipulation EESTEC Summer School 2012 • Methods for manipulating the DOM. Changing attributes, setting style properties, modifying elements,... • append() • css() • remove() • width() • empty() $( this ).css( "width","+=200" ); 30
  • 31. CSS EESTEC Summer School 2012 • Methods, used to get and set CSS-related properties of elements. • css() • position() • addClass() • hasClass() p = $("p:first"); position = p.position(); 31
  • 32. Events EESTEC Summer School 2012 • Methods, used to register behavior to take effect when the user interacts with the browser. • bind(eventType [, eventData], handler(eventObject)) • click(eventData], handler(eventObject)) • keypress([eventData], handler(eventObject)) • hover(handler(eventObject)) • ... $('#clickMe').bind('click', function() { console.log ('User clicked me!'); 32 });
  • 33. Effects EESTEC Summer School 2012 • Techniques for adding animation to a web page • animate(properties [, duration] [, easing] [, complete]) • fadeIn() / fadeOut([duration] [, callback]) • hide() / show() • slideDown() • toggle() $('#book').animate({ opacity: 0.25, left: '+=50', height: 'toggle' }, 5000, function() { console.log('Animation complete.'); 33 });
  • 34. jQuery plugins EESTEC Summer School 2012 • jQuery UI • Dragging • Resizing • Sorting • Datepicker (calendar) • Progressbar • ... 34
  • 35. Thank You! 35 EESTEC Summer School 2012