SlideShare a Scribd company logo
1 of 105
Download to read offline
FUNDAMENTAL

JAVASCRIPT
Aaron Gustafson
@AaronGustafson
slideshare.net/AaronGustafson
Variables
(i.e. buckets)
FUNDAMENTAL JAVASCRIPT

Variables
var my_var;
var another_var, yet_another_var;
FUNDAMENTAL JAVASCRIPT

Variables
var MYVAR,
myvar,
myVar,
MyVar,
MyVaR;
FUNDAMENTAL JAVASCRIPT

Variables: Scope
function myFunc()
{
var my_var = false;
}
my_var; // undefined
Data Types
(i.e. stuff that goes in buckets)
FUNDAMENTAL JAVASCRIPT

Data type: Strings
var single_quoted = 'my text',
double_quoted = "more text";
var no_escape_necessary = 'some "text"',
escaped = 'some 'text'';
var numeric_string = '06517';
FUNDAMENTAL JAVASCRIPT

Data type: Numbers
var positive = 34,
negative = -1,
decimal = 3.14;
FUNDAMENTAL JAVASCRIPT

Data type: Booleans
var yes = true,
no = false,
also_yes = 1, // truthy
also_no = 0; // falsey
FUNDAMENTAL JAVASCRIPT

Data type: Arrays
var my_cats = [];
my_cats[0] = 'Sabine';
my_cats[1] = 'Dakota';
my_cats; // ['Sabine','Dakota']
FUNDAMENTAL JAVASCRIPT

Data type: Arrays
var sabine = [
'Sabine',
// 0 = name
'cat',
// 1 = type
'female',
// 2 = gender
17,
// 3 = age
true
// 4 = spayed/neutered
];
sabine[2]; // 'female'
FUNDAMENTAL JAVASCRIPT

Data type: Arrays
var sabine = ['Sabine', 'cat', 'female', 14, true],
dakota = ['Dakota', 'cat', 'male', 13, true];
pets = [ sabine, dakota ];
pets[1][0]; // 'Dakota'
FUNDAMENTAL JAVASCRIPT

Data type: Hashes
var sabine = [];
sabine['name'] = 'Sabine';
sabine['type'] = 'cat';
sabine['gender'] = 'female';
sabine['age'] = 14;
sabine['fixed'] = true;
sabine;
// []
sabine['name']; // 'Sabine'
sabine.name;
// 'Sabine'
FUNDAMENTAL JAVASCRIPT

Data type: Objects
var sabine = {};
sabine.name = 'Sabine';
sabine.type = 'cat';
sabine.gender = 'female';
sabine.age = 14;
sabine.fixed = true;
sabine;
// Object
sabine['name']; // 'Sabine'
sabine.name;
// 'Sabine'
Operators
(i.e. telling JS what to do)
FUNDAMENTAL JAVASCRIPT

Operators: Arithmetic
var one = 2 - 1,
two = 1 + 1,
three = 9 / 3,
four = 2 * 2,
five = three + two;
FUNDAMENTAL JAVASCRIPT

Operators: Concatenation
'This is a ' + 'string';

// 'This is a string'
FUNDAMENTAL JAVASCRIPT

Operators: Shorthand
var my_var = 1;
my_var
my_var
my_var
my_var

+= 2; // 3
-= 2; // 1
*= 2; // 2
/= 2; // 1

my_var++;
my_var--;
++my_var;
--my_var;

//
//
//
//

2
1
2
1

(after eval.)
(after eval.)
(before eval.)
(before eval.)
FUNDAMENTAL JAVASCRIPT

Operators: Comparison
var my_var = 1;
my_var
my_var
my_var
my_var
my_var
my_var
my_var
my_var

> 2;
< 2;
== 2;
>= 2;
<= 2;
!= 2;
=== 2;
!== 2;

// false
// true
// false
// false
// true
// true
// false
// true
FUNDAMENTAL JAVASCRIPT

Operators: Identity
function isTrue( value )
{
return value === true;
}
isTrue(
isTrue(
isTrue(
isTrue(

true ); // true
false ); // false
1 );
// false
0 );
// false
FUNDAMENTAL JAVASCRIPT

Operators: Logical
if ( ! my_var )
{
// my_var is false, null or undefined (not)
}
if ( my_var > 2 && my_var < 10 )
{
// my_var is between 2 and 10 (exclusive)
}
if ( my_var > 2 || my_var < 2 )
{
// my_var is greater or less than 2
// (i.e. my_var != 2)
}
FUNDAMENTAL JAVASCRIPT

Operators: Logical
if ( ! ( my_var < 2 ) )
{
// my_var is not less than 2
// (or my_var >= 2)
}
if ( ( my_var > 2 &&
my_var < 10 ) ||
my_var == 15 )
{
// my_var is between 2 and 10 (exclusive)
// or my_var is 15
}
FUNDAMENTAL JAVASCRIPT

Data type: Dynamic typing
var my_var = false;

// boolean

my_var = 14;

// number

my_var = "test";

// string

my_var = [];

// array

my_var = {};

// object

my_var = function(){}; // function
FUNDAMENTAL JAVASCRIPT

Data type: Dynamic typing
'This is a ' + 'string';

// 'This is a string'

10 + '20';

// '1020'
Control Structures
(i.e. conducting the symphony)
FUNDAMENTAL JAVASCRIPT

Conditional Action
if ( condition )
{
statement ;
}
FUNDAMENTAL JAVASCRIPT

Semicolons: Use them
first statement
second statement
FUNDAMENTAL JAVASCRIPT

Semicolons: Use them
first statement
second statement
compression
first statement second statement
FUNDAMENTAL JAVASCRIPT

Semicolons: Use them
first statement ;
second statement ;
compression
first statement ; second statement ;
FUNDAMENTAL JAVASCRIPT

Conditional Action
if ( 1 > 2 )
{
console.log( 'something is terribly wrong' );
}
FUNDAMENTAL JAVASCRIPT

Conditional Action
if ( 1 > 2 )
{
console.log( 'something is terribly wrong' );
}
else
{
console.log( 'everything is okay' );
}
FUNDAMENTAL JAVASCRIPT

Conditional Action
console.log(
1 > 2 ? 'something is terribly wrong' : 'everything is okay'
);
FUNDAMENTAL JAVASCRIPT

Conditional Action
if ( height > 6 )
{
console.log( 'you are tall' );
}
else if ( height > 5.5 )
{
console.log( 'you are of average height' );
}
else
{
console.log( 'you are shorter than average' );
}
FUNDAMENTAL JAVASCRIPT

Conditional Action
var msg = 'You are ';
switch ( true )
{
case height > 6:
msg += 'tall';
break;
case height > 5.5:
msg += 'of average height';
break;
default:
msg += 'shorter than average';
break;
}
console.log( msg );
FUNDAMENTAL JAVASCRIPT

For Loops
for ( initialization ; test condition ; alteration )
{
statement ;
}
FUNDAMENTAL JAVASCRIPT

For Loops
for ( var i=1; i<=10; i++ )
{
console.log( i );
}
// 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
FUNDAMENTAL JAVASCRIPT

For Loops
for ( var i=1; i<=10; i++ )
{
console.log( i );
}
// 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
var i = 1;
for ( ; i<=10; )
{
console.log( i++ );
}
// 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
FUNDAMENTAL JAVASCRIPT

While Loops
initialization ;
while ( test condition )
{
statement ;
alteration ;
}
FUNDAMENTAL JAVASCRIPT

While Loops
var i = 1;
while ( i < 10 )
{
console.log( i );
i += 2;
}
// 1, 3, 5, 7, 9
i; // 11
FUNDAMENTAL JAVASCRIPT

While Loops
var i = 11;
while ( i > 10 )
{
console.log( i++ );
}
// infinite loop (condition is always met)
FUNDAMENTAL JAVASCRIPT

While Loops
var i = 10;
while ( i )
{
console.log( i-- );
}
// 10, 9, 8, 7, 6, 5, 4, 3, 2, 1
Functions
(i.e. reusable bundles of logic)
FUNDAMENTAL JAVASCRIPT

Functions
function name( arguments )
{
statements ;
}
FUNDAMENTAL JAVASCRIPT

Functions
function isTrue( value )
{
return value === true;
}
isTrue(
isTrue(
isTrue(
isTrue(

true ); // true
false ); // false
1 );
// false
0 );
// false
FUNDAMENTAL JAVASCRIPT

Functions
function add( a, b )
{
return a + b;
}
add( 1, 2 );
// 3
add( 4, 5 );
// 9
add( 1, 2, 3 ); // 3
FUNDAMENTAL JAVASCRIPT

Functions
function add( a, b, c )
{
return a + b + c;
}
add( 1, 2 );
// Not a number (NaN)
add( 4, 5 );
// NaN
add( 1, 2, 3 ); // 6
FUNDAMENTAL JAVASCRIPT

Functions
function add( a, b, c )
{
c = c || 0;
return a + b + c;
}
add( 1, 2 );
// 3
add( 4, 5 );
// 9
add( 1, 2, 3 ); // 6
FUNDAMENTAL JAVASCRIPT

Functions
function add()
{
var total = 0,
i = 0;
while ( arguments[i] )
{
total += arguments[i++];
}
return total;
}
add( 1, 2 );
add( 1, 2, 3 );
add( 1, 2, 3, 8 );

// 3
// 6
// 14
FUNDAMENTAL JAVASCRIPT

Functions
function add()
{
var total = 0,
i = 0;
while ( arguments[i] )
{
total += arguments[i++];
}
return total;
}
add(
add(
add(
add(

1,
1,
1,
1,

2 );
2, 3 );
2, 3, 8 );
2, ‘foo’, 8 );

// 3
// 6
// 14
// 3foo8
FUNDAMENTAL JAVASCRIPT

Functions
function add()
{
var total = 0,
i = 0;
while ( arguments[i] )
{
if ( typeof arguments[i] == 'number' )
{
total += arguments[i];
}
i++;
}
return total;
}
add(
add(
add(
add(

1,
1,
1,
1,

2 );
2, 3 );
2, 3, 8 );
2, ‘foo’, 8 );

// 3
// 6
// 14
// 11
FUNDAMENTAL JAVASCRIPT

Variables: Scope
function myFunc()
{
my_first_var = true;
var my_second_var = false;
}
window.my_first_var; // undefined
myFunc();
window.my_first_var; // true
window.my_second_var; // undefined
FUNDAMENTAL JAVASCRIPT

Variables: Scope
function myFunc()
{
my_first_var = true;
var my_second_var = false;
}
window.my_first_var; // undefined
myFunc();
window.my_first_var; // true
window.my_second_var; // undefined
window.myFunc; // function
FUNDAMENTAL JAVASCRIPT

Variables: Scope
function Silly()
{
a = 10;
return a *= 2;
}
var a = 10;
a;
Silly();
Silly();
a;

// 10
// 20
// 20
// 20
FUNDAMENTAL JAVASCRIPT

Variables: Scope
function Silly()
{
var a = 10;
return a *= 2;
}
var a = 10;
a;
Silly();
Silly();
a;

// 10
// 20
// 20
// 10
FUNDAMENTAL JAVASCRIPT

Variables: Scope
function Silly()
{
return a *= 2;
}
var a =
Silly();
Silly();
a;

10;
// 20
// 40
// 40
FUNDAMENTAL JAVASCRIPT

“Anonymous” Functions
window.onload = function(){
// do something
};
FUNDAMENTAL JAVASCRIPT

“Anonymous” Functions
(function(){
// do something
}());
FUNDAMENTAL JAVASCRIPT

“Anonymous” Functions
(
// encapsulates some code
);
FUNDAMENTAL JAVASCRIPT

“Anonymous” Functions
(
function(){
// defines an anonymous function
}
);
FUNDAMENTAL JAVASCRIPT

“Anonymous” Functions
(
function(){
}() // executes it immediately
);
FUNDAMENTAL JAVASCRIPT

“Anonymous” Functions
(function(){
// do something
}());
Objects
(i.e. organizers)
FUNDAMENTAL JAVASCRIPT

Objects
var Foo = {};
FUNDAMENTAL JAVASCRIPT

Objects
var Foo = {};
Foo.value = ‘bar’;
Foo.value; // ‘bar’
FUNDAMENTAL JAVASCRIPT

Objects
var Foo = {};
Foo.value = ‘bar’;
Foo.doSomething = function(){
console.log( this.value );
};
Foo.doSomething(); // ‘bar’
FUNDAMENTAL JAVASCRIPT

Almost everything’s an object
var
str_a = '1 2 3 4 5',
str_b = '6 7 8 9';
str_a.length;
str_a.concat( ' ', str_b );
str_a.indexOf( '1' );
str_a.lastIndexOf( ' ' );

// 9
// '1 2 3 4 5 6 7 8 9'
// 0
// 7
FUNDAMENTAL JAVASCRIPT

Almost everything’s an object
var arr = [ 1, 2, 3, 4, 5 ];
arr.length;
arr.join( ' ' );

// 5
// '1 2 3 4 5'

arr.pop();
arr;

// 5
// [ 1, 2, 3, 4 ]

arr.push( 6 );
arr;

// 5 (the new length)
// [ 1, 2, 3, 4, 6 ]

arr.reverse();
arr;

// [ 6, 4, 3, 2, 1 ]

arr.shift();
arr.unshift( 5 );
arr;

// 6
// 5 (the new length)
// [ 5, 4, 3, 2, 1 ]
The DOM
(i.e. your HTML)
FUNDAMENTAL JAVASCRIPT

HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset=”utf-8">
<title>Page Title</title>
</head>
<body>
<h1>This is a heading</h1>
<p>This is a paragraph with a
<a href="http://blog.easy-designs.net">link</a>.</p>
<ul>
<li>a list item</li>
<li>another list item</li>
<li>a third list item</li>
</ul>
</body>
</html>
FUNDAMENTAL JAVASCRIPT

HTML
html
FUNDAMENTAL JAVASCRIPT

HTML
html

head

meta

title

body

h1

p

ul

a

li

li

li
FUNDAMENTAL JAVASCRIPT

HTML
p

this is a paragraph
of text with a

a

href="http://blog.easy-designs.net"

.

link
Step 1:

Find Stuff
FUNDAMENTAL JAVASCRIPT

Find Stuff (in CSS)
p {
color: red;
}
#footer {
border: 1px solid;
}
#footer p {
color: black;
}
FUNDAMENTAL JAVASCRIPT

Find Stuff (in JS)
document.getElementsByTagName( 'p' );

document.getElementById( 'footer' );

document.getElementById( 'footer' )
.getElementsByTagName( 'p' );
FUNDAMENTAL JAVASCRIPT

Find Stuff (in jQuery)
$( 'p' );

$( '#footer' );

$( '#footer p' );
FUNDAMENTAL JAVASCRIPT

Find Stuff (in modern JS)
document.querySelector( 'p' );

document.querySelector( '#footer' );

document.querySelector( '#footer p' );
FUNDAMENTAL JAVASCRIPT

Libraries vs. Vanilla JS
Write less code

Write more code

Don’t worry about
browser differences

Deal with browser issues

More abstraction

More explicit

Extra Downloads

Built-in

Slower

Faster

81
FUNDAMENTAL JAVASCRIPT

Comparison
Syntax
document.getElementsByTagName( ‘p’ )
$( ‘p’ )
document.getElementById( ‘foo’ )

Operations/second
8,280,893
19,449
12,137,211

$( ‘#foo’ )

350,557

document.querySelector( ‘ul.first’ )

350,102

$( ‘ul.first’ )

18,450
FUNDAMENTAL JAVASCRIPT

Comparison
Syntax

Operations/second

document.getElementsByTagName( ‘p’ )

8,280,893

99.7% slower

19,449

$( ‘p’ )

document.getElementById( ‘foo’ )
$( ‘#foo’ )

97.1% slower

12,137,211
350,557

document.querySelector( ‘ul.first’ )

350,102

95% slower

18,450

$( ‘ul.first’ )
FUNDAMENTAL JAVASCRIPT

Traversing a document
var a = document.getElementsByTagName( 'a' ),
a_len = a.length,
i,
title;
for ( i=0; i < a_len; i++ )
{
title = a[i].getAttribute( 'title' );
if ( title )
{
console.log( title );
}
}
FUNDAMENTAL JAVASCRIPT

Traversing a document
node
node
node
node
node
node
node

.previousSibling; // node
.nextSibling;
// node
.parentNode;
// node
.childNodes;
// node list
.children;
// element collection
.firstChild;
// node
.lastChild;
// node
FUNDAMENTAL JAVASCRIPT

Digging in
node .nodeName;

// e.g. “em” or “#text”

node .nodeType;

// 1 = element
// 2 = attribute
// 3 = text

node .nodeValue;

// only attribute nodes
// and text nodes
Step 2:

Manipulate Stuff
FUNDAMENTAL JAVASCRIPT

Manipulate Stuff (in CSS)
p {
color: red;
}
#footer {
border: 1px solid;
}
#footer > p {
color: black;
}
FUNDAMENTAL JAVASCRIPT

Manipulate Stuff (in JS)
var abbr = document.createElement( 'abbr' );
var text = document.createTextNode( 'TN' );
abbr.setAttribute( 'title', 'Tennessee' );
abbr.appendChild( text );
FUNDAMENTAL JAVASCRIPT

Manipulating the DOM
element .appendChild( new_node );
element .insertBefore( new_node, target );
element .replaceChild( new_node, target );
FUNDAMENTAL JAVASCRIPT

Manipulating elements
var p = document.getElementsByTagName( 'p' )[0],

// collect

abbr = document.createElement( 'abbr' ),
text = document.createTextNode( 'TN' );

// generate

abbr.setAttribute( 'title', 'Tennessee' );
abbr.appendChild( text );
p.appendChild( abbr );

// combine
FUNDAMENTAL JAVASCRIPT

Cheap creation
// find #foo
var p = document.getElementById( '#foo' );
// create the model
var abbr = document.createElement( 'abbr' );
for ( i=0; i<100; i++ )
{
// append cheap copies to #foo
p.appendChild( abbr.cloneNode() );
}
FUNDAMENTAL JAVASCRIPT

Cheap creation
// create the model
var abbr = document.createElement( 'abbr' ),
a, b;
// add a child
abbr.appendChild(
document.createTextNode('hi')
);
// make cheap copies
a = abbr.cloneNode( false );
b = abbr.cloneNode( true );

// <abbr></abbr>
// <abbr>hi</abbr>
FUNDAMENTAL JAVASCRIPT

Bulk manipulation
// good for read/write of large chunks
element .innerHTML = new_content;
// avoid in general
document.write( new_content );
Exercise 1
FUNDAMENTAL JAVASCRIPT

HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset=”utf-8">
<title>Example 1</title>
</head>
<body>
<blockquote cite="http://bit.ly/1n9zDlG">
<p>Progressive Enhancement, as a label for a strategy for
Web design, was coined by Steven Champeon in a series of
articles and presentations for Webmonkey and the SxSW
Interactive conference.</p>
</blockquote>
</body>
</html>
FUNDAMENTAL JAVASCRIPT

The plan
1.Find all the blockquotes in a document
2. Get the value of the cite attribute
3. Create a new anchor element node
4. Set the href attribute of the anchor to the value of the cite
5. Create a new text node with the word “source”
6. Insert the text into the anchor
7. Insert the anchor into the blockquote.

97
FUNDAMENTAL JAVASCRIPT

HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset=”utf-8">
<title>Example 1</title>
</head>
<body>
<blockquote cite="http://bit.ly/1n9zDlG">
<p>Progressive Enhancement, as a label for a strategy for
Web design, was coined by Steven Champeon in a series of
articles and presentations for Webmonkey and the SxSW
Interactive conference.</p>
</blockquote>
<script>
...
</script>
</body>
</html>
FUNDAMENTAL JAVASCRIPT

My take
var quotes = document.getElementsByTagName( 'blockquote' );
for ( var i=0; i < quotes.length; i++ )
{
var source = quotes[i].getAttribute( 'cite' );
if ( source )
{
var link = document.createElement( 'a' );
link.setAttribute( 'href', source );
var text = document.createTextNode( 'source' );
link.appendChild( text );
quotes[i].appendChild( link );
}
}
Exercise 2
FUNDAMENTAL JAVASCRIPT

HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset=”utf-8">
<title>Example 2</title>
</head>
<body>
<p>This is a <em>test</em> of a simple email obfuscation
technique. It relies on an obfuscated email address placed in
an emphasis element (<code>em</code>) and replaces it with a
<code>mailto:</code> link for the valid email address.</p>
<p>For example, this email address&#8212;<em>aaron [at]
easy [dash] designs [dot] net</em>&#8212; should be
converted.</p>
</body>
</html>
FUNDAMENTAL JAVASCRIPT

The plan
1. Find all the em elements in a document
2. Make sure the content passes our obfuscation test (e.g. contains “[at]”)
3. Grab the content and convert bracketed terms to their equivalents to
reveal the email address (e.g. “[at]” to “@”)
4. Create a new anchor
5. Set the content to be the email address
6. Set the mailto: href
7. Replace the em with the anchor

102
FUNDAMENTAL JAVASCRIPT

HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset=”utf-8">
<title>Example 2</title>
</head>
<body>
<p>This is a <em>test</em> of a simple email obfuscation
technique. It relies on an obfuscated email address placed in
an emphasis element (<code>em</code>) and replaces it with a
<code>mailto:</code> link for the valid email address.</p>
<p>For example, this email address&#8212;<em>aaron [at]
easy [dash] designs [dot] net</em>&#8212; should be
converted.</p>
</body>
</html>
FUNDAMENTAL JAVASCRIPT

My take
var ems = document.getElementsByTagName('em'),
i = ems.length, str, a;
while ( i-- )
{
if ( ems[i].firstChild &&
ems[i].firstChild.nodeValue.match( /s*[at]s*/g ) )
{
str = ems[i].firstChild.nodeValue
.replace( /s*[dot]s*/g, '.' )
.replace( /s*[at]s*/g, '@' )
.replace( /s*[dash]s*/g, '-' );
a = document.createElement( 'a' );
a.setAttribute( 'href', 'mailto:' + str );
a.appendChild( document.createTextNode( str ) );
ems[i].parentNode.replaceChild( a, ems[i] );
}
}

More Related Content

What's hot

Hibernate ppt
Hibernate pptHibernate ppt
Hibernate pptAneega
 
Lab #2: Introduction to Javascript
Lab #2: Introduction to JavascriptLab #2: Introduction to Javascript
Lab #2: Introduction to JavascriptWalid Ashraf
 
Introduction to JavaScript
Introduction to JavaScriptIntroduction to JavaScript
Introduction to JavaScriptAndres Baravalle
 
Java script final presentation
Java script final presentationJava script final presentation
Java script final presentationAdhoura Academy
 
JavaScript Basics and Best Practices - CC FE & UX
JavaScript Basics and Best Practices - CC FE & UXJavaScript Basics and Best Practices - CC FE & UX
JavaScript Basics and Best Practices - CC FE & UXJWORKS powered by Ordina
 
JavaScript & Dom Manipulation
JavaScript & Dom ManipulationJavaScript & Dom Manipulation
JavaScript & Dom ManipulationMohammed Arif
 
Introduction to web programming with JavaScript
Introduction to web programming with JavaScriptIntroduction to web programming with JavaScript
Introduction to web programming with JavaScriptT11 Sessions
 
Html5 and-css3-overview
Html5 and-css3-overviewHtml5 and-css3-overview
Html5 and-css3-overviewJacob Nelson
 
Object Oriented Programming In JavaScript
Object Oriented Programming In JavaScriptObject Oriented Programming In JavaScript
Object Oriented Programming In JavaScriptForziatech
 
JavaScript - An Introduction
JavaScript - An IntroductionJavaScript - An Introduction
JavaScript - An IntroductionManvendra Singh
 
jQuery Tutorial For Beginners | Developing User Interface (UI) Using jQuery |...
jQuery Tutorial For Beginners | Developing User Interface (UI) Using jQuery |...jQuery Tutorial For Beginners | Developing User Interface (UI) Using jQuery |...
jQuery Tutorial For Beginners | Developing User Interface (UI) Using jQuery |...Edureka!
 
Hibernate Presentation
Hibernate  PresentationHibernate  Presentation
Hibernate Presentationguest11106b
 

What's hot (20)

Hibernate ppt
Hibernate pptHibernate ppt
Hibernate ppt
 
Lab #2: Introduction to Javascript
Lab #2: Introduction to JavascriptLab #2: Introduction to Javascript
Lab #2: Introduction to Javascript
 
Javascript 101
Javascript 101Javascript 101
Javascript 101
 
Javascript essentials
Javascript essentialsJavascript essentials
Javascript essentials
 
Introduction to JavaScript
Introduction to JavaScriptIntroduction to JavaScript
Introduction to JavaScript
 
Modern JS with ES6
Modern JS with ES6Modern JS with ES6
Modern JS with ES6
 
Introduction to JavaScript Basics.
Introduction to JavaScript Basics.Introduction to JavaScript Basics.
Introduction to JavaScript Basics.
 
Javascript
JavascriptJavascript
Javascript
 
3. Java Script
3. Java Script3. Java Script
3. Java Script
 
Java script final presentation
Java script final presentationJava script final presentation
Java script final presentation
 
JavaScript Basics and Best Practices - CC FE & UX
JavaScript Basics and Best Practices - CC FE & UXJavaScript Basics and Best Practices - CC FE & UX
JavaScript Basics and Best Practices - CC FE & UX
 
JavaScript & Dom Manipulation
JavaScript & Dom ManipulationJavaScript & Dom Manipulation
JavaScript & Dom Manipulation
 
Javascript
JavascriptJavascript
Javascript
 
Introduction to web programming with JavaScript
Introduction to web programming with JavaScriptIntroduction to web programming with JavaScript
Introduction to web programming with JavaScript
 
Html5 and-css3-overview
Html5 and-css3-overviewHtml5 and-css3-overview
Html5 and-css3-overview
 
Object Oriented Programming In JavaScript
Object Oriented Programming In JavaScriptObject Oriented Programming In JavaScript
Object Oriented Programming In JavaScript
 
JavaScript - An Introduction
JavaScript - An IntroductionJavaScript - An Introduction
JavaScript - An Introduction
 
Java script ppt
Java script pptJava script ppt
Java script ppt
 
jQuery Tutorial For Beginners | Developing User Interface (UI) Using jQuery |...
jQuery Tutorial For Beginners | Developing User Interface (UI) Using jQuery |...jQuery Tutorial For Beginners | Developing User Interface (UI) Using jQuery |...
jQuery Tutorial For Beginners | Developing User Interface (UI) Using jQuery |...
 
Hibernate Presentation
Hibernate  PresentationHibernate  Presentation
Hibernate Presentation
 

Similar to Fundamental JavaScript concepts explained in depth

FrontDays #3. Иван Федяев, Эволюция JavaScript. Обзор нововведений ECMAScript 6
FrontDays #3. Иван Федяев, Эволюция JavaScript. Обзор нововведений ECMAScript 6FrontDays #3. Иван Федяев, Эволюция JavaScript. Обзор нововведений ECMAScript 6
FrontDays #3. Иван Федяев, Эволюция JavaScript. Обзор нововведений ECMAScript 6FrontDays
 
Avinash Kundaliya: Javascript and WordPress
Avinash Kundaliya: Javascript and WordPressAvinash Kundaliya: Javascript and WordPress
Avinash Kundaliya: Javascript and WordPresswpnepal
 
Chaining et composition de fonctions avec lodash / underscore
Chaining et composition de fonctions avec lodash / underscoreChaining et composition de fonctions avec lodash / underscore
Chaining et composition de fonctions avec lodash / underscoreNicolas Carlo
 
Javascript: the important bits
Javascript: the important bitsJavascript: the important bits
Javascript: the important bitsChris Saylor
 
Chaining and function composition with lodash / underscore
Chaining and function composition with lodash / underscoreChaining and function composition with lodash / underscore
Chaining and function composition with lodash / underscoreNicolas Carlo
 
Javascript best practices
Javascript best practicesJavascript best practices
Javascript best practicesManav Gupta
 
2013-06-15 - Software Craftsmanship mit JavaScript
2013-06-15 - Software Craftsmanship mit JavaScript2013-06-15 - Software Craftsmanship mit JavaScript
2013-06-15 - Software Craftsmanship mit JavaScriptJohannes Hoppe
 
2013-06-24 - Software Craftsmanship with JavaScript
2013-06-24 - Software Craftsmanship with JavaScript2013-06-24 - Software Craftsmanship with JavaScript
2013-06-24 - Software Craftsmanship with JavaScriptJohannes Hoppe
 
Workshop 5: JavaScript testing
Workshop 5: JavaScript testingWorkshop 5: JavaScript testing
Workshop 5: JavaScript testingVisual Engineering
 
Code Generation in PHP - PHPConf 2015
Code Generation in PHP - PHPConf 2015Code Generation in PHP - PHPConf 2015
Code Generation in PHP - PHPConf 2015Lin Yo-An
 
JavaScript for PHP developers
JavaScript for PHP developersJavaScript for PHP developers
JavaScript for PHP developersStoyan Stefanov
 
04 Advanced Javascript
04 Advanced Javascript04 Advanced Javascript
04 Advanced Javascriptcrgwbr
 
JavaScript Functions
JavaScript FunctionsJavaScript Functions
JavaScript FunctionsColin DeCarlo
 
05 JavaScript #burningkeyboards
05 JavaScript #burningkeyboards05 JavaScript #burningkeyboards
05 JavaScript #burningkeyboardsDenis Ristic
 

Similar to Fundamental JavaScript concepts explained in depth (20)

FrontDays #3. Иван Федяев, Эволюция JavaScript. Обзор нововведений ECMAScript 6
FrontDays #3. Иван Федяев, Эволюция JavaScript. Обзор нововведений ECMAScript 6FrontDays #3. Иван Федяев, Эволюция JavaScript. Обзор нововведений ECMAScript 6
FrontDays #3. Иван Федяев, Эволюция JavaScript. Обзор нововведений ECMAScript 6
 
Avinash Kundaliya: Javascript and WordPress
Avinash Kundaliya: Javascript and WordPressAvinash Kundaliya: Javascript and WordPress
Avinash Kundaliya: Javascript and WordPress
 
Chaining et composition de fonctions avec lodash / underscore
Chaining et composition de fonctions avec lodash / underscoreChaining et composition de fonctions avec lodash / underscore
Chaining et composition de fonctions avec lodash / underscore
 
Javascript: the important bits
Javascript: the important bitsJavascript: the important bits
Javascript: the important bits
 
JavaScript patterns
JavaScript patternsJavaScript patterns
JavaScript patterns
 
Chaining and function composition with lodash / underscore
Chaining and function composition with lodash / underscoreChaining and function composition with lodash / underscore
Chaining and function composition with lodash / underscore
 
Java script for web developer
Java script for web developerJava script for web developer
Java script for web developer
 
Javascript best practices
Javascript best practicesJavascript best practices
Javascript best practices
 
Say It With Javascript
Say It With JavascriptSay It With Javascript
Say It With Javascript
 
2013-06-15 - Software Craftsmanship mit JavaScript
2013-06-15 - Software Craftsmanship mit JavaScript2013-06-15 - Software Craftsmanship mit JavaScript
2013-06-15 - Software Craftsmanship mit JavaScript
 
2013-06-24 - Software Craftsmanship with JavaScript
2013-06-24 - Software Craftsmanship with JavaScript2013-06-24 - Software Craftsmanship with JavaScript
2013-06-24 - Software Craftsmanship with JavaScript
 
Short intro to ECMAScript
Short intro to ECMAScriptShort intro to ECMAScript
Short intro to ECMAScript
 
Workshop 5: JavaScript testing
Workshop 5: JavaScript testingWorkshop 5: JavaScript testing
Workshop 5: JavaScript testing
 
Code Generation in PHP - PHPConf 2015
Code Generation in PHP - PHPConf 2015Code Generation in PHP - PHPConf 2015
Code Generation in PHP - PHPConf 2015
 
JavaScript for PHP developers
JavaScript for PHP developersJavaScript for PHP developers
JavaScript for PHP developers
 
Javascript - Beyond-jQuery
Javascript - Beyond-jQueryJavascript - Beyond-jQuery
Javascript - Beyond-jQuery
 
Introduccion a Jasmin
Introduccion a JasminIntroduccion a Jasmin
Introduccion a Jasmin
 
04 Advanced Javascript
04 Advanced Javascript04 Advanced Javascript
04 Advanced Javascript
 
JavaScript Functions
JavaScript FunctionsJavaScript Functions
JavaScript Functions
 
05 JavaScript #burningkeyboards
05 JavaScript #burningkeyboards05 JavaScript #burningkeyboards
05 JavaScript #burningkeyboards
 

More from Aaron Gustafson

Delivering Critical Information and Services [JavaScript & Friends 2021]
Delivering Critical Information and Services [JavaScript & Friends 2021]Delivering Critical Information and Services [JavaScript & Friends 2021]
Delivering Critical Information and Services [JavaScript & Friends 2021]Aaron Gustafson
 
Adapting to Reality [Guest Lecture, March 2021]
Adapting to Reality [Guest Lecture, March 2021]Adapting to Reality [Guest Lecture, March 2021]
Adapting to Reality [Guest Lecture, March 2021]Aaron Gustafson
 
Designing the Conversation [Beyond Tellerrand 2019]
Designing the Conversation [Beyond Tellerrand 2019]Designing the Conversation [Beyond Tellerrand 2019]
Designing the Conversation [Beyond Tellerrand 2019]Aaron Gustafson
 
Getting Started with Progressive Web Apps [Beyond Tellerrand 2019]
Getting Started with Progressive Web Apps [Beyond Tellerrand 2019]Getting Started with Progressive Web Apps [Beyond Tellerrand 2019]
Getting Started with Progressive Web Apps [Beyond Tellerrand 2019]Aaron Gustafson
 
Progressive Web Apps: Where Do I Begin?
Progressive Web Apps: Where Do I Begin?Progressive Web Apps: Where Do I Begin?
Progressive Web Apps: Where Do I Begin?Aaron Gustafson
 
Media in the Age of PWAs [ImageCon 2019]
Media in the Age of PWAs [ImageCon 2019]Media in the Age of PWAs [ImageCon 2019]
Media in the Age of PWAs [ImageCon 2019]Aaron Gustafson
 
Adapting to Reality [Starbucks Lunch & Learn]
Adapting to Reality [Starbucks Lunch & Learn]Adapting to Reality [Starbucks Lunch & Learn]
Adapting to Reality [Starbucks Lunch & Learn]Aaron Gustafson
 
Conversational Semantics for the Web [CascadiaJS 2018]
Conversational Semantics for the Web [CascadiaJS 2018]Conversational Semantics for the Web [CascadiaJS 2018]
Conversational Semantics for the Web [CascadiaJS 2018]Aaron Gustafson
 
Better Performance === Greater Accessibility [Inclusive Design 24 2018]
Better Performance === Greater Accessibility [Inclusive Design 24 2018]Better Performance === Greater Accessibility [Inclusive Design 24 2018]
Better Performance === Greater Accessibility [Inclusive Design 24 2018]Aaron Gustafson
 
PWA: Where Do I Begin? [Microsoft Ignite 2018]
PWA: Where Do I Begin? [Microsoft Ignite 2018]PWA: Where Do I Begin? [Microsoft Ignite 2018]
PWA: Where Do I Begin? [Microsoft Ignite 2018]Aaron Gustafson
 
Designing the Conversation [Concatenate 2018]
Designing the Conversation [Concatenate 2018]Designing the Conversation [Concatenate 2018]
Designing the Conversation [Concatenate 2018]Aaron Gustafson
 
Designing the Conversation [Accessibility DC 2018]
Designing the Conversation [Accessibility DC 2018]Designing the Conversation [Accessibility DC 2018]
Designing the Conversation [Accessibility DC 2018]Aaron Gustafson
 
Performance as User Experience [AEADC 2018]
Performance as User Experience [AEADC 2018]Performance as User Experience [AEADC 2018]
Performance as User Experience [AEADC 2018]Aaron Gustafson
 
The Web Should Just Work for Everyone
The Web Should Just Work for EveryoneThe Web Should Just Work for Everyone
The Web Should Just Work for EveryoneAaron Gustafson
 
Performance as User Experience [AEA SEA 2018]
Performance as User Experience [AEA SEA 2018]Performance as User Experience [AEA SEA 2018]
Performance as User Experience [AEA SEA 2018]Aaron Gustafson
 
Performance as User Experience [An Event Apart Denver 2017]
Performance as User Experience [An Event Apart Denver 2017]Performance as User Experience [An Event Apart Denver 2017]
Performance as User Experience [An Event Apart Denver 2017]Aaron Gustafson
 
Advanced Design Methods 1, Day 2
Advanced Design Methods 1, Day 2Advanced Design Methods 1, Day 2
Advanced Design Methods 1, Day 2Aaron Gustafson
 
Advanced Design Methods 1, Day 1
Advanced Design Methods 1, Day 1Advanced Design Methods 1, Day 1
Advanced Design Methods 1, Day 1Aaron Gustafson
 
Designing the Conversation [Paris Web 2017]
Designing the Conversation [Paris Web 2017]Designing the Conversation [Paris Web 2017]
Designing the Conversation [Paris Web 2017]Aaron Gustafson
 
Exploring Adaptive Interfaces [Generate 2017]
Exploring Adaptive Interfaces [Generate 2017]Exploring Adaptive Interfaces [Generate 2017]
Exploring Adaptive Interfaces [Generate 2017]Aaron Gustafson
 

More from Aaron Gustafson (20)

Delivering Critical Information and Services [JavaScript & Friends 2021]
Delivering Critical Information and Services [JavaScript & Friends 2021]Delivering Critical Information and Services [JavaScript & Friends 2021]
Delivering Critical Information and Services [JavaScript & Friends 2021]
 
Adapting to Reality [Guest Lecture, March 2021]
Adapting to Reality [Guest Lecture, March 2021]Adapting to Reality [Guest Lecture, March 2021]
Adapting to Reality [Guest Lecture, March 2021]
 
Designing the Conversation [Beyond Tellerrand 2019]
Designing the Conversation [Beyond Tellerrand 2019]Designing the Conversation [Beyond Tellerrand 2019]
Designing the Conversation [Beyond Tellerrand 2019]
 
Getting Started with Progressive Web Apps [Beyond Tellerrand 2019]
Getting Started with Progressive Web Apps [Beyond Tellerrand 2019]Getting Started with Progressive Web Apps [Beyond Tellerrand 2019]
Getting Started with Progressive Web Apps [Beyond Tellerrand 2019]
 
Progressive Web Apps: Where Do I Begin?
Progressive Web Apps: Where Do I Begin?Progressive Web Apps: Where Do I Begin?
Progressive Web Apps: Where Do I Begin?
 
Media in the Age of PWAs [ImageCon 2019]
Media in the Age of PWAs [ImageCon 2019]Media in the Age of PWAs [ImageCon 2019]
Media in the Age of PWAs [ImageCon 2019]
 
Adapting to Reality [Starbucks Lunch & Learn]
Adapting to Reality [Starbucks Lunch & Learn]Adapting to Reality [Starbucks Lunch & Learn]
Adapting to Reality [Starbucks Lunch & Learn]
 
Conversational Semantics for the Web [CascadiaJS 2018]
Conversational Semantics for the Web [CascadiaJS 2018]Conversational Semantics for the Web [CascadiaJS 2018]
Conversational Semantics for the Web [CascadiaJS 2018]
 
Better Performance === Greater Accessibility [Inclusive Design 24 2018]
Better Performance === Greater Accessibility [Inclusive Design 24 2018]Better Performance === Greater Accessibility [Inclusive Design 24 2018]
Better Performance === Greater Accessibility [Inclusive Design 24 2018]
 
PWA: Where Do I Begin? [Microsoft Ignite 2018]
PWA: Where Do I Begin? [Microsoft Ignite 2018]PWA: Where Do I Begin? [Microsoft Ignite 2018]
PWA: Where Do I Begin? [Microsoft Ignite 2018]
 
Designing the Conversation [Concatenate 2018]
Designing the Conversation [Concatenate 2018]Designing the Conversation [Concatenate 2018]
Designing the Conversation [Concatenate 2018]
 
Designing the Conversation [Accessibility DC 2018]
Designing the Conversation [Accessibility DC 2018]Designing the Conversation [Accessibility DC 2018]
Designing the Conversation [Accessibility DC 2018]
 
Performance as User Experience [AEADC 2018]
Performance as User Experience [AEADC 2018]Performance as User Experience [AEADC 2018]
Performance as User Experience [AEADC 2018]
 
The Web Should Just Work for Everyone
The Web Should Just Work for EveryoneThe Web Should Just Work for Everyone
The Web Should Just Work for Everyone
 
Performance as User Experience [AEA SEA 2018]
Performance as User Experience [AEA SEA 2018]Performance as User Experience [AEA SEA 2018]
Performance as User Experience [AEA SEA 2018]
 
Performance as User Experience [An Event Apart Denver 2017]
Performance as User Experience [An Event Apart Denver 2017]Performance as User Experience [An Event Apart Denver 2017]
Performance as User Experience [An Event Apart Denver 2017]
 
Advanced Design Methods 1, Day 2
Advanced Design Methods 1, Day 2Advanced Design Methods 1, Day 2
Advanced Design Methods 1, Day 2
 
Advanced Design Methods 1, Day 1
Advanced Design Methods 1, Day 1Advanced Design Methods 1, Day 1
Advanced Design Methods 1, Day 1
 
Designing the Conversation [Paris Web 2017]
Designing the Conversation [Paris Web 2017]Designing the Conversation [Paris Web 2017]
Designing the Conversation [Paris Web 2017]
 
Exploring Adaptive Interfaces [Generate 2017]
Exploring Adaptive Interfaces [Generate 2017]Exploring Adaptive Interfaces [Generate 2017]
Exploring Adaptive Interfaces [Generate 2017]
 

Recently uploaded

The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 

Recently uploaded (20)

The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 

Fundamental JavaScript concepts explained in depth