Home  >  Article  >  Web Front-end  >  How many data types are there in JavaScript? How to determine data type in JavaScript

How many data types are there in JavaScript? How to determine data type in JavaScript

云罗郡主
云罗郡主forward
2018-10-29 14:30:351643browse

How many data types are there in JavaScript? I believe that many friends who have just come into contact with JavaScript will have such questions. This chapter will introduce to you how many data types are there in JavaScript? How to determine data type in JavaScript. It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.

How to determine the data type in JavaScript? We can use the following methods: typeof, instanceof, constructor, prototype method

How to judge the type in js, let’s give a few examples:

var a = "iamstring.";
var b = 222;
var c= [1,2,3];
var d = new Date();
var e = function(){alert(111);};
var f = function(){this.name="22";};

1. The most common judgment Method: typeof() method

alert(typeof a)   ------------> string
alert(typeof b)   ------------> number
alert(typeof c)   ------------> object
alert(typeof d)   ------------> object
alert(typeof e)   ------------> function
alert(typeof f)   ------------> function

The types returned by typeof are all in string form. Please note, for example:

alert(typeof a == "string") -------------> true
alert(typeof a == String) ---------------> false

In addition, typeof can determine the type of function; in addition to determining the type of Object It is more convenient when using objects.

2. Method to determine known object types: instanceof

alert(c instanceof Array) ---------------> true
alert(d instanceof Date)
alert(f instanceof Function) ------------> true
alert(f instanceof function) ------------> false

Note: instanceof must be followed by the object type, and the case cannot be wrong. This method is suitable for some conditional selections or branches.

3. Judgment based on the constructor of the object: constructor

alert(c.constructor == Array) ----------> true
alert(d.constructor == Date) -----------> true
alert(e.constructor == Function) -------> true

Note: constructor will make an error when inheriting the class

Example:

function A(){};
function B(){};
A.prototype = new B(); //A继承自B
var aObj = new A();
alert(aobj.constructor === B) -----------> true;
alert(aobj.constructor === A) -----------> false;

The instanceof method does not This problem will occur. Both direct and indirect inheritance of objects will report true:

alert(aobj instanceof B) ----------------> true;
alert(aobj instanceof B) ----------------> true;

Let’s get back to the topic. To solve the problem of construtor, we usually let the object’s constructor point to itself manually:

aobj.constructor = A; //将自己的类赋值给对象的constructor属性
alert(aobj.constructor === A) -----------> true;
alert(aobj.constructor === B) -----------> false; //基类不会报true了;

4. Universal but A very cumbersome method: prototype

alert(Object.prototype.toString.call(a) === ‘[object String]’) -------> true;
alert(Object.prototype.toString.call(b) === ‘[object Number]’) -------> true;
alert(Object.prototype.toString.call(c) === ‘[object Array]’) -------> true;
alert(Object.prototype.toString.call(d) === ‘[object Date]’) -------> true;
alert(Object.prototype.toString.call(e) === ‘[object Function]’) -------> true;
alert(Object.prototype.toString.call(f) === ‘[object Function]’) -------> true;

cannot be written in the wrong case, which is more troublesome, but it is more versatile.

Usually, you can use typeof to judge. If you encounter a situation where the Object type is known, you can use the instanceof or constructor method.

The above is about how many data types are there in JavaScript? A full introduction to how to determine the data type in JavaScript. If you want to know more about JavaScript Video Tutorial, please pay attention to the PHP Chinese website.


The above is the detailed content of How many data types are there in JavaScript? How to determine data type in JavaScript. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:lvyestudy.com. If there is any infringement, please contact admin@php.cn delete