Upgrade to Pro — share decks privately, control downloads, hide ads and more …

What the JavaScript?

What the JavaScript?

You've heard years of complaints about JavaScript and how many WTFs it has. It's certainly popular to be in the "I use JS but it's a crazy language" camp. But is it really riddled with bad design?

There are definitely some legitimate WTFs, but they're most likely not the things you think. We're going to meander through of bunch of the weird corners of the language -- not the usual suspects -- and then look FORWARD to the new WTFs that ES6 (or ES2015 or whatever) has in store for us.

If you're looking for the "bad parts" to avoid, ditch everything you've heard before and "let" these dance in your nightmares.

Kyle Simpson
PRO

February 12, 2015
Tweet

More Decks by Kyle Simpson

Other Decks in Programming

Transcript

  1. what
    the...
    JavaScript?
    kyle simpson
    http://getify.me
    @getify
    http://www.waxoil.com/art/alternative/strange-art-leaf.gif

    View Slide

  2. defend, hate

    View Slide

  3. wtf:
    not just funny

    View Slide

  4. wtf:
    not a bug, not just ugly

    View Slide

  5. wtf:
    not cross browser quirks

    View Slide

  6. wtf:
    inconsistent, incoherent,
    unreasonable

    View Slide

  7. TC39: great!

    View Slide

  8. JavaScript: great...
    and getting better!

    View Slide

  9. most wtfs...not

    View Slide

  10. View Slide

  11. warmups

    View Slide

  12. wtf

    View Slide

  13. wtf

    View Slide

  14. wtf

    View Slide

  15. coercion

    View Slide

  16. not wtf

    View Slide

  17. not wtf

    View Slide

  18. not wtf

    View Slide

  19. wtf

    View Slide

  20. moar coercion

    View Slide

  21. wtf

    View Slide

  22. wtf

    View Slide

  23. wtf

    View Slide

  24. wtf

    View Slide

  25. wtf

    View Slide

  26. wtf

    View Slide

  27. empty slots

    View Slide

  28. wtf

    View Slide

  29. wtf

    View Slide

  30. wtf

    View Slide

  31. wtf

    View Slide

  32. switch default break

    View Slide

  33. wtf

    View Slide

  34. finally

    View Slide

  35. wtf

    View Slide

  36. not wtf

    View Slide

  37. wtf

    View Slide

  38. wtf

    View Slide

  39. wtf

    View Slide

  40. wtf

    View Slide

  41. generators

    View Slide

  42. not wtf

    View Slide

  43. not wtf

    View Slide

  44. not wtf

    View Slide

  45. not wtf

    View Slide

  46. not wtf

    View Slide

  47. not wtf

    View Slide

  48. wtf

    View Slide

  49. wtf

    View Slide

  50. wtf

    View Slide

  51. tdz: temporal dead zone

    View Slide

  52. wtf

    View Slide

  53. object destructuring

    View Slide

  54. not wtf

    View Slide

  55. not wtf

    View Slide

  56. not wtf

    View Slide

  57. not wtf

    View Slide

  58. not wtf

    View Slide

  59. wtf

    View Slide

  60. wtf

    View Slide

  61. not wtf

    View Slide

  62. not wtf

    View Slide

  63. wtf

    View Slide

  64. default param values

    View Slide

  65. not wtf

    View Slide

  66. wtf

    View Slide

  67. wtf

    View Slide

  68. "class"es

    View Slide

  69. wtf

    View Slide

  70. wtf

    View Slide

  71. I'm being generous --> not wtf

    View Slide

  72. I'm being generous --> not wtf

    View Slide

  73. wtf

    View Slide

  74. wtf

    View Slide

  75. wtf

    View Slide

  76. wtf

    View Slide

  77. wtf

    View Slide

  78. wtf

    View Slide

  79. sigh

    View Slide

  80. haters gonna hate
    still gonna JavaScript

    View Slide

  81. always bet on
    JavaScript
    ...and its wtfs

    View Slide

  82. thanks!
    kyle simpson
    http://getify.me
    @getify

    View Slide