JavaScript Objects Explained: A Practical Guide for Devs

Hello my frontend developers, today i will be discussing one of the important concepts in javascript which is almost used everywhere and in every project, “Objects”.
Objects are the backbone of JavaScript, powering everything from simple data structures to complex applications. Whether you’re a beginner or an experienced developer, mastering how to create, modify, and manipulate objects efficiently can significantly improve your code. In this guide, we’ll break down JavaScript objects to help you write cleaner and more optimized code.
- I’ll be creating my code snippets on Scribbler.live first, which is a fantastic platform that allows you to run a JavaScript Notebook, Online Compiler, and Editor without the need for manual setup.
- Additionally, I am including a link to code snippets that includes all of the code examples so you can open the snippet and run it yourself to see the results.
- I will be using
scrib.show
from scribbler.live, it is equivalent toconsole.log
Lets dive in…
Table of contents
1. Creating Objects
JavaScript allows you to create objects in different ways. The most common methods are object literals and the new Object()
syntax.
// 1. Creating objects
// Using Object Literal
const programming = {
language: "Javascript",
extension: ".js",
usedFor: "Web development and backend"
};
scrib.show("Using object literal - ",programming)
// Using new Object()
const programmingObject = new Object();
programmingObject.language = "Python";
programmingObject.extension = ".py";
programmingObject.usedFor = "Web development and AI/ML";
scrib.show("Using new Object - ",programmingObject)
2. Accessing Object Properties
You can access object properties using dot notation or bracket notation.
// 2. Accessing properties
const programming = {
language: "Javascript",
extension: ".js",
usedFor: "Web development and backend"
};
// Dot Notation
scrib.show("Using dot notation - ",programming.language); // "Javascript"
// Bracket Notation
scrib.show("Using bracket notation - ",programming["extension"]); // .js
// Bracket Notation with spaces
scrib.show("Using bracket notation with key with spaces - ",programming["Used with"]); // HTML and CSS
3. Modifying Object Properties
You can update an object’s property using assignment (=
).
// 3. Modifying properties
const programming = {
language: "Javascript",
extension: ".js",
usedFor: "Web development and backend"
};
// Updating properties
programming.language = "Python";
// Adding new properties
programming["Used with"] = "HTML and CSS";
scrib.show(programming);
// { "language": "Python", "extension": ".js", "usedFor": "Web development and backend", "Used with": "HTML and CSS" }
4. Checking Properties
Use the in
operator or hasOwnProperty()
to check if a property exists.
// 4. Checking properties
const programming = {
language: "Javascript",
extension: ".js",
usedFor: "Web development and backend"
};
// Using "in" operator
scrib.show("'language' in programming?", "language" in programming); // true
scrib.show("'Used for' in programming?", "Used for" in programming); // false
// Using hasOwnProperty()
scrib.show("'extension' in programming?",programming.hasOwnProperty("extension")); // true
5. Iterating Over an Object
Use for...in
and for...of
to loop through an object’s properties.
// 5. iterating objects
const programming = {
language: "Javascript",
extension: ".js",
usedFor: "Web development and backend"
};
// looping over the object directly
for (let key in programming) {
scrib.show(`${key}: ${programming[key]}`);
}
const keys = Object.keys(programming);
const values = Object.values(programming);
const entries = Object.entries(programming);
// Iterating keys
for (let key of keys) {
scrib.show(`key: ${key}`);
}
// Iterating values
for (let value of values) {
scrib.show(`Value: ${value}`);
}
// Iterating entries with key and value both
for (let [key, value] of entries) {
scrib.show(`Key: ${key},Value: ${value}`);
}
6. Copying & Cloning Objects
- Avoid modifying the original object by creating a copy.
- For deep copies (nested objects), use
structuredClone()
(modern browsers) orJSON.parse(JSON.stringify(obj))
.
// 6. Copying and cloning objects
const programming1 = {
language: "Javascript",
extension: ".js",
usedFor: "Web development and backend"
};
const programming2 = {
language: "Python",
extension: ".py",
usedFor: "Web development and AI/ML",
libraries: [{
name:"pytorch"
},{
name:"numpy"
}]
};
// Shallow Copy using Object.assign()
const copying1 = Object.assign({}, programming1);
scrib.show(copying1);
// Shallow Copy using Spread Operator
const copying2 = { ...programming1 };
scrib.show(copying2);
// for deep copies, using structuredClone
const deepCopy = structuredClone(programming2);
scrib.show(deepCopy);
7. Merging Objects
Use Object.assign()
or the spread operator to merge objects.
// 7. Merging objects
const programming = {
language: "Javascript",
extension: ".js",
usedFor: "Web development and backend"
};
const concepts = {
concepts: "Arrays, Objects, Functions, Fetch, Classes"
};
// Using Object.assign()
const merged1 = Object.assign({}, programming, concepts);
scrib.show(merged1)
// Using Spread Operator
const merged2 = { ...programming, ...concepts };
scrib.show(merged1)
8. Freezing & Sealing Objects
- Use
Object.freeze()
to make an object immutable. - Use
Object.seal()
to allow modifications but prevent adding/removing properties.
// 8. Freezing
const programming = {
language: "Javascript",
extension: ".js",
usedFor: "Web development and backend"
};
// freezing
Object.freeze(programming);
programming.language = "Python"; // Won't change
scrib.show(programming); // { "language": "Javascript", "extension": ".js", "usedFor": "Web development and backend" }
// 8. Sealing
const programming = {
language: "Javascript",
extension: ".js",
usedFor: "Web development and backend"
};
Object.seal(programming);
programming["Used for"] = "Web development and backend" // Adding/removing not Allowed
programming.language = "Python" // Updating Allowed
scrib.show(programming);
9. Converting Objects
Convert objects to arrays or JSON strings.
// 9. Converting objects
const programming = {
language: "Javascript",
extension: ".js",
usedFor: "Web development and backend"
};
// Convert Object to JSON
const jsonString = JSON.stringify(programming);
scrib.show(jsonString); // {"language":"Javascript","extension":".js","usedFor":"Web development and backend"}
// Convert Object to arrays
const jsonArray = Object.entries(programming);
scrib.show(jsonArray); // [ [ "language", "Javascript" ], [ "extension", ".js" ], [ "usedFor", "Web development and backend" ]]
10. Advanced Object Handling
Using Object Destructuring
const user = { name: "Jake", age: 26, job: "Engineer" };
const { name, age } = user;
console.log(name, age); // "Jake", 26
Using Object Methods
const person = {
name: "Emma",
greet() {
console.log(`Hello, my name is ${this.name}`);
}
};
person.greet();
Using object prototypes
JavaScript objects inherit properties from their prototype.
// Object prototype
function Programming(language, extension,usedFor) {
this.language = language;
this.extension = extension;
this.usedFor = usedFor;
}
Programming.prototype.fetchDoc = () => "Doc is fetched for javascript";
const javascript = new Programming("Javascript", ".js","Web development and backend");
javascript.fetchDoc(); // Doc is fetched for javascript
Executing all the examples in scribbler.live
Check out all the examples on scribbler.live and run it yourself to see the output from each of the examples above
Conclusion
Handling objects efficiently is crucial in JavaScript. Whether you’re creating, modifying, iterating, or merging objects, mastering these techniques will help you write cleaner and more optimized code.
That’s it for this post, Let me know if i could do any improvements in this article. Also, do check Scribbler.live website.
You can contact me on –
Instagram – https://www.instagram.com/supremacism__shubh/
LinkedIn – https://www.linkedin.com/in/shubham-tiwari-b7544b193/
Email – shubhmtiwri00@gmail.com
You can help me with some donation at the link below Thank you
https://www.buymeacoffee.com/waaduheck
Also check these posts as well