Yogesh Chauhan's Blog

Why it’s not a good idea to create Number objects in JavaScript?

in JavaScript on May 5, 2020

Numbers Can be Objects

JavaScript numbers are primitive values created from literals:


var x = 1;

But numbers can also be defined as objects with the keyword new:


var y = new Number(1);

If we check it's type:


var x = 1;
var y = new Number(1);
console.log(typeof(x));
console.log(typeof(y));

//number
//object

The first reason why we should not create number objects is that it slows down execution speed.

The keyword new complicates the code which can produce some unexpected results:

When we use  == operator, equal numbers are equal.

For example, if we compare the above number and object it should result in true based on the value.


var x = 1;
var y = new Number(1);
console.log(x==y); //true

But when we use the === operator, equal numbers are not equal because the === operator expects equality in both type and value.

For example, if we compare the above number and object using === operator, it should result in false based on the value and type.


var x = 1;
var y = new Number(1);
console.log(x===y); //false

So, the second reason is comparison can give different results.

The third reason is because objects cannot be compared, the numbers objects won't make any sense while comparing.

So, if create 2 objects of numbers and then try to compare them, it will result in false.

For example:


var x = new Number(1);
var y = new Number(2);
console.log(x==y); //false

Comparing two JavaScript objects will always return false.


Most Read

#1 How to check if radio button is checked or not using JavaScript? #2 Solution to “TypeError: ‘x’ is not iterable” in Angular 9 #3 How to add Read More Read Less Button using JavaScript? #4 How to uninstall Cocoapods from the Mac OS? #5 PHP Login System using PDO Part 1: Create User Registration Page #6 How to Use SQL MAX() Function with Dates?

Recently Posted

#Aug 15 Is PHP still good for back-end programming? #Aug 10 How to create a multisite network in WordPress? #Aug 3 How to create a circle that follows a cursor using JavaScript and CSS? #Aug 3 How to make a curtain slider using jQuery and CSS? #Aug 2 How to progressively load images and add a blurry placeholder? #Aug 1 How to create a placeholder loader (throbber) using CSS?
You might also like these
Introduction to Angular modules Part 2: NgModules and componentsAngularuser_can vs current_user_can in WordPressWordPressHow to refresh a page using PHP at regularly occurring intervals?PHPHow to remove WordPress TinyMCE Editor buttons?WordPressWHERE Clause in PostgresPostgresSQL Inner JoinSQL/MySQL