Today, JavaScript is at the core of virtually all modern web applications.
Let me show you some typical mistakes that almost every JS programmer has made during their career.
I've been a JS dev since 2014 & I still make some of these mistakes, especially when coding in a hurry.
▫ Do you remember the difference between «=», «==» and «===»?
You might encounter a problem with code 👇
You'll get “Hello”! Why?
Because you don’t understand the difference between the 3 operators mentioned above.
Let’s get this thing over with and go further:
“=” is the equal operator, so it’s used for assignment.
In our example, we assign seven to “x” in the condition and get words of welcome “Hello”.
The correct code looks like this:
We get “Nope”.
“==” is the loose equality comparison operator.
Why loose? Because it allows converting values from one type to another to compare them
“===” is the strict equality comparison operator. If this operator returns “true” it means that our values are identical both in value & type.
▫ Inefficient DOM manipulation
JavaScript makes it relatively easy to manipulate the DOM (i.e., add, modify, and remove elements).
A common example is a code that adds a series of DOM Elements one at a time.
Adding a DOM element is an expensive operation.
One effective alternative when multiple DOM elements need to be added is to use document fragments instead, thereby improving both efficiency and performance.
▫ Used '&' when I mean to use '&&'
The 'bitwise' & is used to compare Integers, and if the values being compared are not Integers, they are coerced into Integers.
The standard && is used to compare the truthiness of the operands.
So 123 & false === 0 (because the false becomes a 0)
but 123 && false === false 9 & 5 === 1 but 9 && 5 === 5.
But why does 9 && 5 === 5 and not equal true?
Can you tell me why? Try yourself...
▫ Misunderstand the difference between “let”, “const” and “var”
Let’s first look at the code below:
The code is logical as the output, no questions.
Another example:
The reason is that var is function scoped and let is block scoped.
When you declare a variable with a let keyword, they are moved to the beginning of the block.
This may lead to a reference error when you try to access the variable before the initialization.
▫ Incorrect use of function definitions inside for loops
▫ Fail to notice that 'this' is not always 'this'
▫ Incorrect references to instance methods
▫ Thinking that variables can be scoped to their blocks
▫ Fail to use “strict mode
“strict mode” (i.e., including 'use strict'; at the beginning of your JavaScript source files) is a way to voluntarily enforce stricter parsing and error handling on your JavaScript code at runtime, as well as making it more secure.
Some key benefits of strict mode:
- Makes debugging easier.
- Prevents accidental globals.
- Eliminates this coercion.
- Makes eval() safer.
- Throws error on invalid usage of delete.
In the end,
I would say the better you understand why and how JavaScript works and doesn’t work.
The more solid your code will be...
The more you’ll be able to effectively harness the true power of the language...
Happy coding...
If you’re a beginner at JavaScript and want to learn JavaScript e2e concepts, here’s a great course by WellPaidGeek who is coding for 20+ years?
I have gone through many resumes as a developer in my 11+ year of career -- Some common issues I found...
And How you can improve your resume...
A Thread...
I am constantly asked for advice on how to improve resumes in DMs.
While there is no magic method for creating a great document, there are ground rules for how to improve your resume & increase your chances of being contacted by a recruiter or hiring manager.
▫ Don’t make your resume too long.
Recruiters/Interviewers are busy with their daily coding issues while they need to take the interview as well & reviewing dozens of resumes at any given time.
-They don’t have the time to read all lengthy resumes.
Top Strategies for a Successful Job Search as a Software Engineer (Developer)...
A Thread...
1: Use Your Network to Find a Job
I know not everyone has a strong network they can rely on. It’s okay.
But whoever you do know, you should talk to and utilize.
And you should make new connections/professional relationships to make your job search easier as well.
▫ Tell Everyone in Your Network
Tell people you’re job hunting.
Nobody can help you if you don’t tell people.
I once landed an interview at a top tech company in Pune by telling my LinkedIn connection which I think not even close one, I was job hunting & rest is history.
I used to be confused about whether I should introduce myself as a developer, software engineer, front-end engineer, back-end engineer, full-stack engineer, a software engineer in a test, or just a freelancer.
The tech market is the market.
It doesn't care about who you are, as a developer.
-Which degree you hold
-What boot camp you completed
-Which Udemy course you did
It's hard-hitting for some devs initially.
Your emotional & mental state as a dev has a direct impact on your work