DEV Community

Anthony DiPietrantonio
Anthony DiPietrantonio

Posted on

3 2

Today I Learned — The Javascript In Operator

Earlier this week, during one of my code challenges, I was asked to create a function that took in two arguments, an object and a property, that would return the value of the prop if the object contained the property or simply false if it didn't. Long story short, I ended up using Javascript's hasOwnProperty , but along the way I came across / dove into the in operator.

As someone who has never really used [for .. in loops](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for...in) in Javascript, I never had the chance to really dive into what the in operator is actually doing / used for, until recently.

What Does the In Operator Look Like?

let object = {fruit: "apple", job: "lawyer"}

// propertyName in objectWeWantToCheck
"fruit" in object
Enter fullscreen mode Exit fullscreen mode

What Does the In Operator Do?

It returns true if the object OR its prototype chain contains the specified property

So using our example above: it would result in true

How To Use It

With Arrays

// Use the index of the array + in operator + array name
let colors = ["red","green","blue"]

0 in colors // true
1 in colors // true
3 in colors // false
9 in colors // false

// Notice that the operator functions differently with arrays than it does with objects
// You must use the index with arrays, not the value
"red" in colors // false

// Arrays have a .length property that tells us ... the length, we can use in to confirm this
"length" in colors // true

Enter fullscreen mode Exit fullscreen mode

With Objects

let object = {fruit: "apple", job: "lawyer"}

"fruit" in object // true
"height" in object // false
Enter fullscreen mode Exit fullscreen mode

Alongside the Delete operator and Undefined Properties

let object = {fruit: "apple", job: "lawyer"}
delete object.fruit
"fruit" in object // false

// However -- if instead we did the following:

let object = {fruit: "apple", job: "lawyer"}
object.fruit = undefined

// We'd be in for a surprise
"fruit" in object // true
Enter fullscreen mode Exit fullscreen mode

Its always nice to notice and pick up on little things like this as you continue to grow as a developer 😎

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (1)

Collapse
 
rushannotofficial profile image
Rushan S J

Well, I too didn't know about the in operator... Thanks

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay