Bachelor's and Master's in CS from MIT. Previously, worked @ Microsoft & Zynga. Currently Co-Founder of Moesif (moesif.com), the most advanced API analytics platform.
Software dev at Netflix | DC techie | Conference speaker | egghead Instructor | TC39 Educators Committee | Girls Who Code Facilitator | Board game geek | @laurieontech on twitter
Javascript has a lot of layers. Understanding what is controlling each piece can be hard to parse if you're new. I actually wrote something on this a while back.
I am a software development engineer in test for Infosys. My job is officially to write automated tests in Selenium Webdriver. I'm also a web developer as a hobbyest
Closures. It's a complicated subject involving an understanding of how the execution context works and how variables are scoped and held within the JavaScript engine. It takes a lot of practice and theory for closures to finally click. It took me like six months to finally grok it.
Full-time web dev; JS lover since 2002; CSS fanatic. #CSSIsAwesome
I try to stay up with new web platform features. Web feature you don't understand? Tell me! I'll write an article!
He/him
IMHO, don't ever ever ever use == in JavaScript. Always use === instead and forget about type coercion; just explicitly type-cast anything you need to.
It's a very rare case when you work on a project alone. Other developers can use == and it's necessary to understand how type coercion works.
I agree that most of developers consider == as evil. But Kyle Simpson (You don't know JS author) don't hate type coercion. Moreover, he recomments to use == where necessary.
In other words, coercion, especially implicit coercion, has usages where it actually improves the readability of our code.
Oldest comments (14)
When I started writing JS it was hard to get an understanding of what
prototype
is and how it's used.this
Javascript has a lot of layers. Understanding what is controlling each piece can be hard to parse if you're new. I actually wrote something on this a while back.
The Layers of Javascript
Laurie ・ 3 min read
Closures. It's a complicated subject involving an understanding of how the execution context works and how variables are scoped and held within the JavaScript engine. It takes a lot of practice and theory for closures to finally click. It took me like six months to finally grok it.
Type coercion is definitely not obvious in JavaScript
IMHO, don't ever ever ever use
==
in JavaScript. Always use===
instead and forget about type coercion; just explicitly type-cast anything you need to.It's a very rare case when you work on a project alone. Other developers can use == and it's necessary to understand how type coercion works.
I agree that most of developers consider == as evil. But Kyle Simpson (You don't know JS author) don't hate type coercion. Moreover, he recomments to use == where necessary.
Source.
typeOf null = 'Object'
How come they didn't actually go with 'smoosh'?
The ecosystem. Every time I come back to JS the tooling is entirely different. Makes it frustrating to get things done.
The ecosystem around it
Newest confusion is parseInt. Just try and see what happens if you do
parseInt(0.000000347)