JavaScript is a language that works with different types of data. Knowing these types is super important to writing good code. If you don’t understand them, your programs might break or behave oddly.
What data types exist in javascript?
A data type tells JavaScript what kind of value you’re working with. It helps the computer know how to handle that value. There are two groups: primitive types and objects. Each one is unique and serves a purpose.
Primitive Data Types in JavaScript
Primitive types are basic. They are simple and can’t be changed once created. These are the foundation of JavaScript.
String
Strings are for storing text. Use quotes to define them.
let greeting = "This is string";
Number
Numbers include whole numbers and decimals. They’re flexible.
let age = 30;
let price = 15.99;
BigInt
BigInt handles massive numbers that normal Number
types can’t.
let big = 12345678901234567890n;
Boolean
Booleans are true or false. They help control logic.
let isOnline = false;
Undefined
Undefined means you made a variable, but didn’t assign it a value.
let something;
Null
Null shows that a variable is empty on purpose.
let noValue = null;
Symbol
Symbols are special, unique values. Even if they look the same, they’re different.
let id = Symbol("user");
Objects: The Advanced Types
Objects store related data and functions in one place. They make code more organized and readable.
Basic Object Example
Here’s a simple object:
let user = {
name: "This is user name",
age: 28,
};
name
stores"This is user name"
.age
stores2
8.
Access or update values with dot or bracket notation:
console.log(user.name); // This is user name
user.age = 26; // Updates age to 26
Why Use Objects as Data Types in JavaScript?
Objects help:
- Group related data.
- Represent things like users, products, or settings.
- Combine data and functions.
Adding Functions to Objects
Objects can hold functions too:
let user = {
name: "Some name",
greet() {
return `Hi, I'm ${this.name}!`;
},
};
console.log(user.greet()); // Hi, I'm Some name!
Dynamic Properties
You can add or remove properties anytime:
user.location = "New York"; // Adds a property
delete user.age; // Removes age
console.log(user["location"]); // New York
Special Types of Objects
JavaScript has objects made for specific tasks:
- Array: Stores a list of values in order.
let colors = ["red", "blue", "green"];
- Use Case: Managing a list of items such as a to-do list or product catalog.
- Function: Holds reusable code.
function sayHi() { return "Hello!"; }
- Use Case: Encapsulating reusable logic, such as a calculation or data transformation.
- Date: For dates and times.
let today = new Date();
- Use Case: Scheduling or tracking events, such as showing the current date or calculating deadlines.
- RegExp: Matches patterns in text.
let pattern = /dog/gi;
- Use Case: Validating input or searching for patterns in text, such as email validation.
- You can lean more about RegExp from here
- Map: Key-value pairs. Any data type can be a key.
let inventory = new Map(); inventory.set("apples", 10);
- Use Case: Managing key-value data, such as storing user preferences or configuration settings.
- Set: Keeps only unique values.
let unique = new Set([1, 2, 2, 3]);
- Use Case: Storing unique items, such as tracking visited pages or tags in a blog.
- Typed Arrays: For raw binary data.
let bytes = new Uint8Array([1, 2, 3]);
- Use Case: Handling binary data for tasks like image processing or working with Web APIs.
- Promise: Handles async code.
let fetchData = new Promise((resolve) => resolve("Done"));
- Use Case: Managing asynchronous operations, such as fetching data from an API.
- Proxy: Customizes how objects behave.
let handler = { get: () => "Intercepted!", }; let proxy = new Proxy({}, handler);
- Use Case: Customizing object behavior, such as logging or validating property access.
Meta-Programming in JavaScript
Meta-programming lets you control how your code behaves at runtime. It’s a way to customize or intercept operations on objects. The key tools for meta-programming in JavaScript are Proxy and Reflect.
Proxy
Proxies let you change how objects work. You can intercept actions like getting or setting properties.
Here’s an example:
let target = {};
let handler = {
get: () => "Accessed!",
};
let proxy = new Proxy(target, handler);
console.log(proxy.anything); // Accessed!
target
: The original object.handler
: Defines custom behavior. In this case, it intercepts property access.proxy
: The object that applies the custom behavior.
When to Use Proxies
Proxies are useful for:
- Validation: Checking property values before they’re set.
- Logging: Tracking when properties are accessed.
- Default Values: Returning a fallback value for missing properties.
Example:
let handler = {
get: (obj, prop) => prop in obj ? obj[prop] : "Not Found",
};
let proxy = new Proxy({ name: "Alice" }, handler);
console.log(proxy.name); // Alice
console.log(proxy.age); // Not Found
Proxies give you fine-grained control over objects, making them flexible and powerful.
Reflect
The Reflect object provides methods for working with JavaScript objects. It simplifies operations like setting properties or calling functions.
Example:
let user = { name: "John" };
// Using Reflect to set a property
Reflect.set(user, "age", 30);
console.log(user); // { name: "John", age: 30 }
// Using Reflect to get a property
let name = Reflect.get(user, "name");
console.log(name); // John
// Checking if a property exists
console.log(Reflect.has(user, "age")); // true
When to Use Reflect
Reflect is helpful for:
- Writing clean and consistent object operations.
- Avoiding errors when working with properties or methods.
- Combining with Proxies for advanced custom behavior.
Host Objects
Your environment (browser or Node.js) gives you special objects:
- In Browsers:
window
,document
,HTMLElement
. Learn more from here - In Node.js:
Buffer
,process
.
Custom Data Types
You can define your own types using classes.
Class Example
class Car {
constructor(make, model) {
this.make = make;
this.model = model;
}
}
let myCar = new Car("Toyota", "Corolla");
Final Thoughts on Data Types
Mastering JavaScript data types makes coding easier. Primitives are simple. Objects are powerful. Use both wisely to build great programs.
You may learn more fom,
I just wanted to drop by and say how much I appreciate your blog. Your writing style is both engaging and informative, making it a pleasure to read. Looking forward to your future posts!
Your blog is a true hidden gem on the internet. Your thoughtful analysis and engaging writing style set you apart from the crowd. Keep up the excellent work!
Howdy would you mind letting me know which web host you’re using? I’ve loaded your blog in 3 different internet browsers and I must say this blog loads a lot quicker then most. Can you suggest a good web hosting provider at a reasonable price? Thank you, I appreciate it!
Good info. Lucky me I reach on your website by accident, I bookmarked it.
What’s Happening i’m new to this, I stumbled upon this I’ve found It positively useful and it has helped me out loads. I hope to give a contribution & aid different users like its helped me. Good job.
Hello there, I found your website via Google while searching for a related topic, your website came up, it looks good. I have bookmarked it in my google bookmarks.
I’ve read a few good stuff here. Certainly worth bookmarking for revisiting. I surprise how much effort you put to create such a great informative website.
There are actually a whole lot of details like that to take into consideration. That could be a great point to deliver up. I supply the ideas above as basic inspiration however clearly there are questions like the one you carry up the place an important thing might be working in trustworthy good faith. I don?t know if best practices have emerged round things like that, but I am sure that your job is clearly recognized as a good game. Both boys and girls feel the impact of only a second’s pleasure, for the rest of their lives.
Outstanding post, I conceive people should larn a lot from this website its rattling user pleasant.
Really wonderful visual appeal on this internet site, I’d rate it 10 10.
This is the best weblog for anybody who desires to search out out about this topic. You understand so much its almost onerous to argue with you (not that I actually would need…HaHa). You definitely put a new spin on a subject thats been written about for years. Nice stuff, just great!
This web site can be a walk-through for the entire data you needed about this and didn’t know who to ask. Glimpse right here, and you’ll undoubtedly discover it.
Heya are using WordPress for your blog platform? I’m new to the blog world but I’m trying to get started and set up my own. Do you require any coding expertise to make your own blog? Any help would be greatly appreciated!
Hey, you used to write magnificent, but the last few posts have been kinda boring… I miss your tremendous writings. Past few posts are just a little bit out of track! come on!
Very nice post. I just stumbled upon your weblog and wanted to say that I have truly enjoyed browsing your blog posts. After all I will be subscribing to your rss feed and I hope you write again soon!
I like this web blog so much, saved to favorites.
Woh I love your posts, bookmarked! .
The very root of your writing while appearing agreeable in the beginning, did not really settle very well with me after some time. Someplace within the sentences you managed to make me a believer unfortunately only for a while. I nevertheless have a problem with your leaps in logic and one might do well to fill in those gaps. In the event you actually can accomplish that, I will definitely end up being amazed.
Absolutely written written content, thankyou for information .
Hello very cool website!! Guy .. Beautiful .. Wonderful .. I will bookmark your web site and take the feeds additionally…I am happy to seek out so many helpful information right here within the publish, we’d like work out extra techniques on this regard, thank you for sharing.
Hello! I just would like to give a huge thumbs up for the great info you have here on this post. I will be coming back to your blog for more soon.
I simply couldn’t go away your site prior to suggesting that I actually enjoyed the usual info an individual supply in your visitors? Is going to be back steadily in order to check up on new posts
Hey! I simply want to give a huge thumbs up for the great data you’ve gotten here on this post. I will be coming again to your blog for extra soon.
What’s Happening i am new to this, I stumbled upon this I have found It absolutely useful and it has aided me out loads. I am hoping to give a contribution & assist other customers like its aided me. Good job.
I haven?¦t checked in here for some time since I thought it was getting boring, but the last several posts are great quality so I guess I will add you back to my everyday bloglist. You deserve it my friend 🙂
Great website! I am loving it!! Will come back again. I am taking your feeds also
As soon as I detected this website I went on reddit to share some of the love with them.
You made a few fine points there. I did a search on the theme and found most people will go along with with your blog.
It’s actually a cool and helpful piece of information. I’m satisfied that you simply shared this helpful info with us. Please keep us up to date like this. Thank you for sharing.
I believe that is among the so much important information for me. And i’m satisfied studying your article. But want to remark on some basic issues, The site taste is great, the articles is in reality excellent : D. Excellent job, cheers
Hello, Neat post. There’s an issue together with your website in internet explorer, would test thisK IE nonetheless is the market leader and a big portion of other people will leave out your wonderful writing because of this problem.
I want foregathering useful information , this post has got me even more info! .
I like this internet site because so much useful stuff on here : D.
You made some good points there. I did a search on the subject and found most persons will go along with with your site.
Hi, I think your site might be having browser compatibility issues. When I look at your website in Safari, it looks fine but when opening in Internet Explorer, it has some overlapping. I just wanted to give you a quick heads up! Other then that, fantastic blog!
Enjoyed reading through this, very good stuff, thanks. “Shared joys make a friend, not shared sufferings.” by Friedrich Wilhelm Nietzsche.
Nice post. I learn something more challenging on different blogs everyday. It can at all times be stimulating to read content from other writers and observe slightly one thing from their store. I’d want to use some with the content on my blog whether you don’t mind. Natually I’ll offer you a link on your web blog. Thanks for sharing.
What i don’t understood is actually how you are not actually much more well-liked than you may be right now. You are very intelligent. You realize therefore considerably relating to this subject, made me personally consider it from numerous varied angles. Its like women and men aren’t fascinated unless it’s one thing to do with Lady gaga! Your own stuffs outstanding. Always maintain it up!
I have been browsing online more than 3 hours today, yet I never found any interesting article like yours. It is pretty worth enough for me. Personally, if all web owners and bloggers made good content as you did, the net will be much more useful than ever before.
I like this post, enjoyed this one regards for putting up.
Very efficiently written post. It will be valuable to anyone who employess it, including me. Keep doing what you are doing – i will definitely read more posts.
I am constantly browsing online for articles that can benefit me. Thanks!
Simply wanna remark that you have a very decent web site, I like the pattern it actually stands out.
It is really a great and useful piece of info. I am glad that you shared this useful information with us. Please keep us informed like this. Thanks for sharing.
I think this is among the most important info for me. And i’m glad reading your article. But wanna remark on few general things, The web site style is ideal, the articles is really nice : D. Good job, cheers
I will right away clutch your rss feed as I can’t to find your email subscription link or newsletter service. Do you have any? Kindly allow me understand so that I may just subscribe. Thanks.
I haven?¦t checked in here for some time as I thought it was getting boring, but the last few posts are great quality so I guess I?¦ll add you back to my daily bloglist. You deserve it my friend 🙂
Sweet internet site, super design, very clean and utilise genial.
I would like to thnkx for the efforts you have put in writing this blog. I am hoping the same high-grade blog post from you in the upcoming as well. In fact your creative writing abilities has inspired me to get my own blog now. Really the blogging is spreading its wings quickly. Your write up is a good example of it.
Great info and right to the point. I am not sure if this is in fact the best place to ask but do you guys have any thoughts on where to employ some professional writers? Thx 🙂
An interesting discussion is worth comment. I think that you should write more on this topic, it might not be a taboo subject but generally people are not enough to speak on such topics. To the next. Cheers
Some times its a pain in the ass to read what blog owners wrote but this site is rattling user pleasant! .
I have been absent for a while, but now I remember why I used to love this web site. Thanks , I¦ll try and check back more often. How frequently you update your website?
I have recently started a web site, the info you provide on this site has helped me greatly. Thank you for all of your time & work.
Thank you for any other informative website. Where else may just I get that type of information written in such an ideal method? I’ve a undertaking that I am just now operating on, and I have been on the glance out for such information.
I couldn’t resist commenting
Great write-up, I’m normal visitor of one’s website, maintain up the nice operate, and It’s going to be a regular visitor for a long time.
My brother recommended I might like this blog. He was entirely right. This post actually made my day. You can not imagine just how much time I had spent for this info! Thanks!
I really like what you guys are up too. This type of clever work and exposure! Keep up the excellent works guys I’ve included you guys to my blogroll.
Heya i am for the first time here. I found this board and I find It truly useful & it helped me out a lot. I hope to give something back and help others like you aided me.
I will right away grab your rss feed as I can not find your email subscription link or newsletter service. Do you’ve any? Kindly let me know so that I could subscribe. Thanks.