1. JavaScript for PHP Developers
Ed Finkler
@funkatron
coj@funkatron.com
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
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
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
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
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