SlideShare a Scribd company logo
JavaScript for PHP Developers
Ed Finkler
@funkatron
coj@funkatron.com
November 1, 2010
#zendcon #js4php
http://joind.in/2289
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010
Goodsie.com
2
Invitation code: zendcon
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010
What is this?
3
Stop c+p'ing, start writing
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010
A practical overview of JS
for the PHP developer
4
I'm too dumb for that
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010
NOT CS-oriented
5
FWIW
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010
My experiences and best practices
6
JS devs are kind of dickheads
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010
JavaScript dev is opinionated
7
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010
History of JavaScript
8
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010
Brendan Eich
9
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010
"Mocha"
10
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010
"LiveScript"
11
Seemed like a good idea at the time
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010
"JavaScript"
12
http://www.infoworld.com/d/developer-world/javascript-creator-ponders-past-future-704
Yeesh
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010
ECMAScript
13
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010
Core JavaScript
14
aka ECMAScript 3, circa 1999
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010
Baseline is JS 1.5
15
Hey, I know that!
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010
Dynamically typed
16
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010
Object-based
17
But not how you think
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010
Object-oriented
18
First class, baby!
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010
Functional
19
Like giving clay to a monkey
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010
Malleable
20
You mean I don't have to memorize 4,500 function names?
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010
Core is pretty darn small
21
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201022
Core Objects Core Global Functions
Boolean decodeURI
Number decodeURIComponent
String encodeURI
Array encodeURIComponent
Object eval
Function isFinite
RegExp isNaN
Date parseFloat
parseInt
Core JS
All the cool stuff!
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201023
What's missing?
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201024
File i/o
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201025
Networking
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201026
DB APIs
Yep, the DOM is not part of JavaScript
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201027
DOM
Please don't leave yet.
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201028
So what's it good for?
What?
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201029
Asynchronous actions
Oh!
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201030
Like GUI stuff
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201031
Browsers!
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201032
Web Runtime Platforms!
Dear God
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201033
Widget engines!
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201034
Server-side platforms
http://nodejs.org/
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201035
Node.js
http://narwhaljs.org/
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201036
Narwhal
http://code.google.com/p/v8cgi/
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201037
v8cgi
But it's super fun!
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201038
SSJS isn't terribly mature
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201039
Syntax
Like PHP!
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201040
C/Java-like
But they can.
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201041
Variable names don't start with '$'
Not dot.
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201042
Concatenation with '+'
Not '->'. You will screw this up.
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201043
Dot for members. Or []
You will also screw this up.
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201044
Always case-sensitive
But you had better always use them
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201045
Semicolons are optional
Semicolons!
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201046
CODE TIME
"Primitives"
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201047
Data Types
Integers and floats
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201048
Numbers
Truthy
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201049
Booleans
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201050
Strings
Not NULL, not Null.
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201051
null
Declared, but no value set. Not the same as null
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201052
undefined
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201053
That's it.
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201054
Other elements
MDC: "Named containers for values"
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201055
Objects
All objects
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201056
Arrays, Date, RegExp
MDC: "Procedures your application can perform"
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201057
Functions
Hang on!
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201058
Scope
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201059
More bleed than PHP
Functional scope only
No need for global declaration
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201060
Globals automatically available
With or without
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201061
Declaring variables
scope maintained
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201062
With var
Oops! Automatically global
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201063
Without var
window in browsers
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201064
Globals are properties of
global object
globals!
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201065
CODE TIME
This is awesome
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201066
Closures
Anything within context of function declaration is fair game
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201067
Using a var from outside function
Closures
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201068
CODE TIME
Literally
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201069
Literals
Right.
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201070
Numbers
Yep.
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201071
Booleans
Hmmm.
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201072
RegExp
Hey there.
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201073
['a','r','r','a','y','s'];
Oh snap!
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201074
{object:"literals"};
Literals
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201075
CODE TIME
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201076
Operators
+ , = == === < > ! && ||
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201077
Mostly like PHP
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201078
this
Remember, no classes in JS
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201079
new
Does this key exist?
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201080
in
"is X of type Y?"
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201081
instanceof
Returns string of core type
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201082
typeof
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201083
typeof returns
typeof {} "object"
typeof function() {} "function"
typeof new Function(); "function"
typeof true "boolean"
typeof new Date(); "object" // not "date"; use instanceof
typeof [1,2,3] "object" // not "array"
typeof NaN "number"
typeof null "object"
typeof undefined "undefined"
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201084
Type conversion
Radix is optional, but Douglas Crockford will hate you
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201085
parseInt(val, [radix])
Like parseInt, returns NaN if cannot convert
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201086
parseFloat(val)
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201087
String(obj)
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201088
Number(obj)
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201089
Boolean(obj)
http://jibbering.com/faq/notes/type-conversion/
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201090
Functions
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201091
In the procedural tradition
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201092
As objects
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201093
As constructors
with new
An array, kind of
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201094
Function arguments
Fun with functions
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201095
CODE TIME
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201096
Objects
Or associative arrays
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201097
As hashes
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201098
As static modules
Objects as modules
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201099
CODE TIME
Not a word
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010100
As instance-able objects
Just make the object and have a constructor func
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010101
No classes
No public, private, protected
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010102
No visibility levels
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010103
Prototypes & inheritance
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010104
Every object has a prototype
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010105
Prototype provides
attributes of object
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010106
Modifying prototype changes
all objects that use it
points to constructor function of object
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010107
Prototype has .constructor
Prototypes and inheritance
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010108
CODE TIME
Kinda suck in JS
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010109
Dates
Almost a necessary evil
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010110
eval()
That again
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010111
Malleability
Cookies???
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010112
BREAK TIME
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010113
JS in the browser
Non-sequential, long-running
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010114
Execution model
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010115
Single threaded
Oh the humanity
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010116
Browser compatibility
Woo wee!
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010117
DOM APIs
Words and pictures and movin' stuff!
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010118
Elements and events
Trust me
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010119
These are terrible
They suck
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010120
I'm not going to teach you these
Basically fixes everything
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010121
Just use jQuery
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010122
HTTP interaction
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010123
The XMLHttpRequest Object
GETing and POSTing
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010124
JSON is love
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010125
Use JSON2.js
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010126
Newer browsers have
native implementations
Web APIs, woooooooooo!
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010127
CODE TIME
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010128
Resources
<Name of Talk> - <Who> - <Where> - <When>
Resources:Code
129
•SpazCore
http://github.com/funkatron/spazcore
•Underscore.js
http://documentcloud.github.com/underscore/
•http://delicious.com/funka7ron/javascript
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010130
Resources:Web
•Mozilla Dev Center: Code JavaScript Guide
https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide
•Mozilla Dev Center: Core JavaScript Reference
https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference
•Eloquent JavaScript
http://eloquentjavascript.net/
•comp.lang.javascript FAQ
http://jibbering.com/faq/
•Nicholas C. Zakas' Blog
http://www.nczonline.net/
•John Resig's Blog
http://ejohn.org/
•http://wtfjs.com/
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010131
Resources:Books
•JavaScript: The Definitive Guide
David Flanagan
•JavaScript: The Good Parts
Douglas Crockford
•High-Performance JavaScript
Nicholas C. Zakas, et al
•JavaScript Patterns
Stoyan Stefanov
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010132
References
JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010133
References
•Mozilla Dev Center: Core JavaScript Guide
•Eloquent JavaScript

More Related Content

What's hot (16)

PDF
Introduction to PHP (SDPHP)
Eric Johnson
 
PPTX
Android maven Road to flutter| Mavenizing Flutter for web
OluwatobiAkinpelu
 
PPT
Introduction to Go programming
Exotel
 
PDF
really really really awesome php application with bdd behat and iterfaces
Giulio De Donato
 
PPTX
Exploring Ruby on Rails and PostgreSQL
Barry Jones
 
PDF
[INNOVATUBE] Tech Talk #3: Golang - Vũ Nguyễn
Nexus FrontierTech
 
PDF
Elixir + GraphQL = Absinthe 2019.04.10
Alexander Knowles
 
PDF
Why you should care about Go (Golang)
Aaron Schlesinger
 
PDF
Developing for LinkedIn's Application Platform
Taylor Singletary
 
PDF
Droidcon Italy 2015: can you work without open source libraries?
gabrielemariotti
 
PPT
python training | python course | python online training
Nancy Thomas
 
PDF
Writing Fast Code (JP) - PyCon JP 2015
Younggun Kim
 
PDF
Go lang
Suelen Carvalho
 
PDF
The Go programming language - Intro by MyLittleAdventure
mylittleadventure
 
PDF
Lets Go - An introduction to Google's Go Programming Language
Ganesh Samarthyam
 
PDF
[INNOVATUBE] Tech Talk #3: Golang - Takaaki Mizuno
Nexus FrontierTech
 
Introduction to PHP (SDPHP)
Eric Johnson
 
Android maven Road to flutter| Mavenizing Flutter for web
OluwatobiAkinpelu
 
Introduction to Go programming
Exotel
 
really really really awesome php application with bdd behat and iterfaces
Giulio De Donato
 
Exploring Ruby on Rails and PostgreSQL
Barry Jones
 
[INNOVATUBE] Tech Talk #3: Golang - Vũ Nguyễn
Nexus FrontierTech
 
Elixir + GraphQL = Absinthe 2019.04.10
Alexander Knowles
 
Why you should care about Go (Golang)
Aaron Schlesinger
 
Developing for LinkedIn's Application Platform
Taylor Singletary
 
Droidcon Italy 2015: can you work without open source libraries?
gabrielemariotti
 
python training | python course | python online training
Nancy Thomas
 
Writing Fast Code (JP) - PyCon JP 2015
Younggun Kim
 
The Go programming language - Intro by MyLittleAdventure
mylittleadventure
 
Lets Go - An introduction to Google's Go Programming Language
Ganesh Samarthyam
 
[INNOVATUBE] Tech Talk #3: Golang - Takaaki Mizuno
Nexus FrontierTech
 

Viewers also liked (20)

DOC
Mphasis php & .net
anilpavuluri
 
ODP
PHPUnit from a developer's perspective
Tushar Joshi
 
DOCX
Kayla Horbacz Resume
Kayla Horbacz
 
PDF
Mark Tortorici "The Technology Stack"
Talent42
 
PDF
CV LinkedIn
William Kennedy
 
DOCX
K.Hutchins Resume
Kendall Hutchins
 
PDF
Cloud Foundry for PHP developers
Daniel Krook
 
DOC
Dale draggoo resume m read only
dfdraggoo
 
PDF
AlexLu_Resume
Alex Lu
 
PDF
My Resume
snowfarthing
 
PDF
Resume--Alpheus E Madsen
snowfarthing
 
DOC
Click here to download my CV in Word format.doc
butest
 
PDF
Accounting solved mcqs
lucky1671
 
DOC
Tarun hait cv
Tarun Hait
 
PDF
tomtaila
Tom Taila
 
ODP
PHP Web Programming
Muthuselvam RS
 
DOC
2+ Css Html Exp Resume Karthikeyan
Karthikeyan Balasubramanian
 
DOC
Mba, resume format
Anshul Gupta
 
PPT
Seminar report on robotics (line follower) ppt
SYNERGY INSTITUTE OF ENGG & TECH,DHENKANALA
 
Mphasis php & .net
anilpavuluri
 
PHPUnit from a developer's perspective
Tushar Joshi
 
Kayla Horbacz Resume
Kayla Horbacz
 
Mark Tortorici "The Technology Stack"
Talent42
 
CV LinkedIn
William Kennedy
 
K.Hutchins Resume
Kendall Hutchins
 
Cloud Foundry for PHP developers
Daniel Krook
 
Dale draggoo resume m read only
dfdraggoo
 
AlexLu_Resume
Alex Lu
 
My Resume
snowfarthing
 
Resume--Alpheus E Madsen
snowfarthing
 
Click here to download my CV in Word format.doc
butest
 
Accounting solved mcqs
lucky1671
 
Tarun hait cv
Tarun Hait
 
tomtaila
Tom Taila
 
PHP Web Programming
Muthuselvam RS
 
2+ Css Html Exp Resume Karthikeyan
Karthikeyan Balasubramanian
 
Mba, resume format
Anshul Gupta
 
Seminar report on robotics (line follower) ppt
SYNERGY INSTITUTE OF ENGG & TECH,DHENKANALA
 
Ad

Similar to JavaScript for PHP Developers (20)

PDF
Best Practices with Zend Framework - Matthew Weier O'Phinney
dpc
 
PPT
Introduction to PHP - SDPHP
Eric Johnson
 
PDF
Php Crash Course - Macq Electronique 2010
Michelangelo van Dam
 
PDF
Web Design & Development - Session 7
Shahrzad Peyman
 
PDF
6 Months Industrial Project Training in PHP Delhi/NCR
shane99
 
PPTX
Zend Framework Workshop
10n Software, LLC
 
PPT
How to run an Enterprise PHP Shop
Jim Plush
 
PPTX
MVC Frameworks for building PHP Web Applications
Vforce Infotech
 
ODP
Professional PHP: an open-source alternative for enterprise development [Antw...
Combell NV
 
PPTX
Php’s guts
Elizabeth Smith
 
PDF
The why and how of moving to php 8
Wim Godden
 
PDF
Php In A Nutshell A Desktop Quick Reference 1st Edition Paul Hudson
ybortwen
 
PDF
Zend%20Certification%20REVIEW%20Document
tutorialsruby
 
PDF
Zend%20Certification%20REVIEW%20Document
tutorialsruby
 
PPT
Php
zalatarunk
 
PPT
Unit Test for ZF SlideShare Component
Kaiuwe
 
PPT
Unit Test for ZF SlideShare Component
Kaiuwe
 
PDF
ZF2 Presentation @PHP Tour 2011 in Lille
Zend by Rogue Wave Software
 
PPTX
Dev traning 2016 basics of PHP
Sacheen Dhanjie
 
PPTX
Introduction to PHP.pptx
SherinRappai
 
Best Practices with Zend Framework - Matthew Weier O'Phinney
dpc
 
Introduction to PHP - SDPHP
Eric Johnson
 
Php Crash Course - Macq Electronique 2010
Michelangelo van Dam
 
Web Design & Development - Session 7
Shahrzad Peyman
 
6 Months Industrial Project Training in PHP Delhi/NCR
shane99
 
Zend Framework Workshop
10n Software, LLC
 
How to run an Enterprise PHP Shop
Jim Plush
 
MVC Frameworks for building PHP Web Applications
Vforce Infotech
 
Professional PHP: an open-source alternative for enterprise development [Antw...
Combell NV
 
Php’s guts
Elizabeth Smith
 
The why and how of moving to php 8
Wim Godden
 
Php In A Nutshell A Desktop Quick Reference 1st Edition Paul Hudson
ybortwen
 
Zend%20Certification%20REVIEW%20Document
tutorialsruby
 
Zend%20Certification%20REVIEW%20Document
tutorialsruby
 
Unit Test for ZF SlideShare Component
Kaiuwe
 
Unit Test for ZF SlideShare Component
Kaiuwe
 
ZF2 Presentation @PHP Tour 2011 in Lille
Zend by Rogue Wave Software
 
Dev traning 2016 basics of PHP
Sacheen Dhanjie
 
Introduction to PHP.pptx
SherinRappai
 
Ad

More from funkatron (9)

PDF
Building mobile apps with JavaScript and PHP
funkatron
 
PDF
Secure PHP Development with Inspekt
funkatron
 
PDF
Building Desktop RIAs with JavaScript and PHP - ZendCon09
funkatron
 
PDF
Building Desktop RIAs With PHP And JavaScript
funkatron
 
PDF
Intro To Mvc Development In Php
funkatron
 
PDF
Building Desktop RIAs with PHP, HTML & Javascript in AIR
funkatron
 
PDF
Securing the PHP Environment with PHPSecInfo - OSCON 2008
funkatron
 
PDF
Building Desktop RIAs with PHP, HTML & Javascript in AIR
funkatron
 
PDF
Securing the PHP Environment with PHPSecInfo
funkatron
 
Building mobile apps with JavaScript and PHP
funkatron
 
Secure PHP Development with Inspekt
funkatron
 
Building Desktop RIAs with JavaScript and PHP - ZendCon09
funkatron
 
Building Desktop RIAs With PHP And JavaScript
funkatron
 
Intro To Mvc Development In Php
funkatron
 
Building Desktop RIAs with PHP, HTML & Javascript in AIR
funkatron
 
Securing the PHP Environment with PHPSecInfo - OSCON 2008
funkatron
 
Building Desktop RIAs with PHP, HTML & Javascript in AIR
funkatron
 
Securing the PHP Environment with PHPSecInfo
funkatron
 

Recently uploaded (20)

PDF
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
PDF
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
PPTX
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PPTX
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
PDF
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
PDF
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
DOCX
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PPTX
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
PDF
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PDF
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
PPTX
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
PDF
How do you fast track Agentic automation use cases discovery?
DianaGray10
 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PDF
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PDF
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
PDF
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
DOCX
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
Safe Software
 
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
OpenID AuthZEN - Analyst Briefing July 2025
David Brossard
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
MuleSoft MCP Support (Model Context Protocol) and Use Case Demo
shyamraj55
 
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
Cryptography Quiz: test your knowledge of this important security concept.
Rajni Bhardwaj Grover
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
AUTOMATION AND ROBOTICS IN PHARMA INDUSTRY.pptx
sameeraaabegumm
 
Transcript: New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Smart Trailers 2025 Update with History and Overview
Paul Menig
 
Future Tech Innovations 2025 – A TechLists Insight
TechLists
 
How do you fast track Agentic automation use cases discovery?
DianaGray10
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
Book industry state of the nation 2025 - Tech Forum 2025
BookNet Canada
 
Exolore The Essential AI Tools in 2025.pdf
Srinivasan M
 
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 

JavaScript for PHP Developers

  • 1. JavaScript for PHP Developers Ed Finkler @funkatron [email protected] November 1, 2010 #zendcon #js4php http://joind.in/2289
  • 2. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010 Goodsie.com 2 Invitation code: zendcon
  • 3. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010 What is this? 3
  • 4. Stop c+p'ing, start writing JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010 A practical overview of JS for the PHP developer 4
  • 5. I'm too dumb for that JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010 NOT CS-oriented 5
  • 6. FWIW JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010 My experiences and best practices 6
  • 7. JS devs are kind of dickheads JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010 JavaScript dev is opinionated 7
  • 8. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010 History of JavaScript 8
  • 9. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010 Brendan Eich 9
  • 10. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010 "Mocha" 10
  • 11. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010 "LiveScript" 11
  • 12. Seemed like a good idea at the time JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010 "JavaScript" 12 http://www.infoworld.com/d/developer-world/javascript-creator-ponders-past-future-704
  • 13. Yeesh JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010 ECMAScript 13
  • 14. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010 Core JavaScript 14
  • 15. aka ECMAScript 3, circa 1999 JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010 Baseline is JS 1.5 15
  • 16. Hey, I know that! JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010 Dynamically typed 16
  • 17. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010 Object-based 17
  • 18. But not how you think JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010 Object-oriented 18
  • 19. First class, baby! JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010 Functional 19
  • 20. Like giving clay to a monkey JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010 Malleable 20
  • 21. You mean I don't have to memorize 4,500 function names? JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010 Core is pretty darn small 21
  • 22. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201022 Core Objects Core Global Functions Boolean decodeURI Number decodeURIComponent String encodeURI Array encodeURIComponent Object eval Function isFinite RegExp isNaN Date parseFloat parseInt Core JS
  • 23. All the cool stuff! JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201023 What's missing?
  • 24. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201024 File i/o
  • 25. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201025 Networking
  • 26. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201026 DB APIs
  • 27. Yep, the DOM is not part of JavaScript JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201027 DOM
  • 28. Please don't leave yet. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201028 So what's it good for?
  • 29. What? JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201029 Asynchronous actions
  • 30. Oh! JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201030 Like GUI stuff
  • 31. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201031 Browsers!
  • 32. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201032 Web Runtime Platforms!
  • 33. Dear God JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201033 Widget engines!
  • 34. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201034 Server-side platforms
  • 35. http://nodejs.org/ JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201035 Node.js
  • 36. http://narwhaljs.org/ JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201036 Narwhal
  • 38. But it's super fun! JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201038 SSJS isn't terribly mature
  • 39. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201039 Syntax
  • 40. Like PHP! JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201040 C/Java-like
  • 41. But they can. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201041 Variable names don't start with '$'
  • 42. Not dot. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201042 Concatenation with '+'
  • 43. Not '->'. You will screw this up. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201043 Dot for members. Or []
  • 44. You will also screw this up. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201044 Always case-sensitive
  • 45. But you had better always use them JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201045 Semicolons are optional
  • 46. Semicolons! JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201046 CODE TIME
  • 47. "Primitives" JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201047 Data Types
  • 48. Integers and floats JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201048 Numbers
  • 49. Truthy JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201049 Booleans
  • 50. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201050 Strings
  • 51. Not NULL, not Null. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201051 null
  • 52. Declared, but no value set. Not the same as null JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201052 undefined
  • 53. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201053 That's it.
  • 54. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201054 Other elements
  • 55. MDC: "Named containers for values" JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201055 Objects
  • 56. All objects JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201056 Arrays, Date, RegExp
  • 57. MDC: "Procedures your application can perform" JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201057 Functions
  • 58. Hang on! JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201058 Scope
  • 59. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201059 More bleed than PHP Functional scope only
  • 60. No need for global declaration JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201060 Globals automatically available
  • 61. With or without JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201061 Declaring variables
  • 62. scope maintained JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201062 With var
  • 63. Oops! Automatically global JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201063 Without var
  • 64. window in browsers JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201064 Globals are properties of global object
  • 65. globals! JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201065 CODE TIME
  • 66. This is awesome JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201066 Closures
  • 67. Anything within context of function declaration is fair game JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201067 Using a var from outside function
  • 68. Closures JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201068 CODE TIME
  • 69. Literally JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201069 Literals
  • 70. Right. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201070 Numbers
  • 71. Yep. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201071 Booleans
  • 72. Hmmm. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201072 RegExp
  • 73. Hey there. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201073 ['a','r','r','a','y','s'];
  • 74. Oh snap! JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201074 {object:"literals"};
  • 75. Literals JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201075 CODE TIME
  • 76. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201076 Operators
  • 77. + , = == === < > ! && || JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201077 Mostly like PHP
  • 78. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201078 this
  • 79. Remember, no classes in JS JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201079 new
  • 80. Does this key exist? JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201080 in
  • 81. "is X of type Y?" JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201081 instanceof
  • 82. Returns string of core type JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201082 typeof
  • 83. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201083 typeof returns typeof {} "object" typeof function() {} "function" typeof new Function(); "function" typeof true "boolean" typeof new Date(); "object" // not "date"; use instanceof typeof [1,2,3] "object" // not "array" typeof NaN "number" typeof null "object" typeof undefined "undefined"
  • 84. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201084 Type conversion
  • 85. Radix is optional, but Douglas Crockford will hate you JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201085 parseInt(val, [radix])
  • 86. Like parseInt, returns NaN if cannot convert JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201086 parseFloat(val)
  • 87. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201087 String(obj)
  • 88. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201088 Number(obj)
  • 89. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201089 Boolean(obj) http://jibbering.com/faq/notes/type-conversion/
  • 90. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201090 Functions
  • 91. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201091 In the procedural tradition
  • 92. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201092 As objects
  • 93. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201093 As constructors with new
  • 94. An array, kind of JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201094 Function arguments
  • 95. Fun with functions JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201095 CODE TIME
  • 96. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201096 Objects
  • 97. Or associative arrays JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201097 As hashes
  • 98. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201098 As static modules
  • 99. Objects as modules JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 201099 CODE TIME
  • 100. Not a word JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010100 As instance-able objects
  • 101. Just make the object and have a constructor func JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010101 No classes
  • 102. No public, private, protected JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010102 No visibility levels
  • 103. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010103 Prototypes & inheritance
  • 104. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010104 Every object has a prototype
  • 105. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010105 Prototype provides attributes of object
  • 106. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010106 Modifying prototype changes all objects that use it
  • 107. points to constructor function of object JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010107 Prototype has .constructor
  • 108. Prototypes and inheritance JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010108 CODE TIME
  • 109. Kinda suck in JS JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010109 Dates
  • 110. Almost a necessary evil JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010110 eval()
  • 111. That again JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010111 Malleability
  • 112. Cookies??? JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010112 BREAK TIME
  • 113. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010113 JS in the browser
  • 114. Non-sequential, long-running JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010114 Execution model
  • 115. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010115 Single threaded
  • 116. Oh the humanity JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010116 Browser compatibility
  • 117. Woo wee! JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010117 DOM APIs
  • 118. Words and pictures and movin' stuff! JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010118 Elements and events
  • 119. Trust me JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010119 These are terrible
  • 120. They suck JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010120 I'm not going to teach you these
  • 121. Basically fixes everything JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010121 Just use jQuery
  • 122. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010122 HTTP interaction
  • 123. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010123 The XMLHttpRequest Object GETing and POSTing
  • 124. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010124 JSON is love
  • 125. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010125 Use JSON2.js
  • 126. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010126 Newer browsers have native implementations
  • 127. Web APIs, woooooooooo! JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010127 CODE TIME
  • 128. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010128 Resources
  • 129. <Name of Talk> - <Who> - <Where> - <When> Resources:Code 129 •SpazCore http://github.com/funkatron/spazcore •Underscore.js http://documentcloud.github.com/underscore/ •http://delicious.com/funka7ron/javascript
  • 130. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010130 Resources:Web •Mozilla Dev Center: Code JavaScript Guide https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide •Mozilla Dev Center: Core JavaScript Reference https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference •Eloquent JavaScript http://eloquentjavascript.net/ •comp.lang.javascript FAQ http://jibbering.com/faq/ •Nicholas C. Zakas' Blog http://www.nczonline.net/ •John Resig's Blog http://ejohn.org/ •http://wtfjs.com/
  • 131. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010131 Resources:Books •JavaScript: The Definitive Guide David Flanagan •JavaScript: The Good Parts Douglas Crockford •High-Performance JavaScript Nicholas C. Zakas, et al •JavaScript Patterns Stoyan Stefanov
  • 132. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010132 References
  • 133. JavaScript for PHP Developers - Ed Finkler - ZendCon - November 1, 2010133 References •Mozilla Dev Center: Core JavaScript Guide •Eloquent JavaScript