Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up
for free
JavaScript Type Conversions
Orlando Del Aguila
March 13, 2015
Programming
1
33
JavaScript Type Conversions
JavaScript Type Conversions and some explanations to the Gary Bernhardt's wat lighting talk
Orlando Del Aguila
March 13, 2015
Tweet
Share
More Decks by Orlando Del Aguila
See All by Orlando Del Aguila
orlando
0
35
orlando
0
49
orlando
0
31
orlando
0
61
orlando
1
88
orlando
0
170
orlando
0
180
orlando
0
29
orlando
0
110
Other Decks in Programming
See All in Programming
rinyudrvo
1
120
bkuhlmann
4
630
chichou
1
870
line_developers_tw
0
1.6k
yagitatsu
3
1.7k
akatsukinewgrad
0
220
kyonmm
2
2.2k
shigeruoda
0
490
s_uryu
0
240
showwin
0
140
azdaroth
0
100
yanagii
0
200
Featured
See All Featured
paulrobertlloyd
71
1.4k
notwaldorf
13
1.6k
trishagee
20
2.1k
chriscoyier
145
19k
matthewcrist
73
7.5k
sferik
610
54k
holman
461
280k
skipperchong
7
670
malarkey
192
8.6k
phodgson
87
3.9k
shlominoach
176
7.4k
myddelton
109
11k
Transcript
JavaScript Type Conversions
JavaScript Primitives yes, js has primitives
1. undefined 2. null 3. number 4. string 5. boolean
1. undefined 2. null yep, is not an object 3.
number 4. string 5. boolean
JavaScript Binary Operators we are going to address only -
and +
On doubt check the spec
http://www.ecma-international.org/ecma-262/5.1/#sec-11.6.1 http://www.ecma-international.org/ecma-262/5.1/#sec-11.6.2
+ Operator
If lprim or rprim are strings, then concatenate lprim and
rprim and return the result
- Operator
ToNumber(lprim) - ToNumber(rprim)
Examples
var a, b; a = "bla"; b = "ble"; a
+ b; //=> "blable" a - b; //=> "NaN" a = "5"; b = "4"; a + b; //=> "54" a - b; //=> 1
var obj = { valueOf: function valueOf() { console.log("valueOf"); return
{}; // not a primitive }, toString: function toString() { console.log("toString"); return {}; // not a primitive } }; obj - 1; // valueOf // toString // error obj + 1; // valueOf // toString // error
var func = function () { console.log('exec'); return { valueOf:
function valueOf() { console.log("valueOf"); return {}; // not a primitive }, toString: function toString() { console.log("toString"); return {}; // not a primitive } }; }; func() + 1; // exec // valueOf // toString // error
{} + [] //=> +[] == 0 [] + {}
//=> '' + '[object Object]' == '[object Object]' [] - {} //=> 0 - NaN == NaN {} - [] //=> -[] == -0
None
WAT https://www.destroyallsoftware.com/talks/wat