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!