Home > Web Front-end > JS Tutorial > body text

Detailed explanation of how to judge js data type and array method instance

伊谢尔伦
Release: 2017-07-18 11:37:22
Original
1649 people have browsed it

Data type judgment typeof

typeof can solve the judgment of most data types. Its return value is a string that describes the type of the operand.


//判断变量num是不是一个数字类型
if(typeof num=='number') {
  return true;
}
Copy after login

Return results:


var a="hling"; console.log(a); //string
var a=1; console.log(a); //number
var a=false; console.log(a); //boolean
var a; console.log(typeof a); //undfined
var a = null; console.log(typeof a); //object
var a = document; console.log(typeof a); //object
var a = []; console.log(a); //object
var a = function(){}; console.log(typeof a) 
//function除了可以判断数据类型还可以判断function类型
Copy after login

Except for the four types string, number, boolean, and undefined In addition, null, object, and array return all object types! ! !

For function types, function is returned, such as typeof(Date), typeof(eval), etc.

js method to determine array type

1) instanceof

instanceof is used to determine an Whether the variable is an instance of an object is a ternary operator. This operator has something to do with object-oriented in JavaScript. To understand this, you must first understand object-oriented in JavaScript. Because this operator detects whether the prototype chain of the object points to the prototype object of the constructor.


a instanceof b?alert("true"):alert("false") 
//注意b值是你想要判断的那种数据类型,是不是一个字符串,比如Array
Copy after login

Example:


##

var arr = [1,2,3,1]; 
alert(arr instanceof Array); // true
Copy after login

2) constructor

Definition in W3C definition: The constructor attribute returns a reference to the array function that created this object


var arr = []; 
arr instanceof Array; // true 
arr.constructor == Array; //true
Copy after login

The method for judging various types is:


console.log("string".constructor == String);
console.log((123).constructor == Number);
console.log(false.constructor == Boolean);
console.log([].constructor == Array);
console.log({}.constructor == Object);
Copy after login

General method:


function isArray(object){
  return object && typeof object==='object' &&
      Array == object.constructor;
}
Copy after login

3) Characteristic judgment

object.isArray() to determine, the purpose is to accurately detect whether a value is an array. IE9+, Firefox 4+, Safari 5+, Opera 10.5+ and Chrome all implement this method. However, versions before IE8 are not supported.


function isArray(object){
  return object && typeof object==='object' &&  
      typeof object.length==='number' && 
      typeof object.splice==='function' &&  
       //判断length属性是否是可枚举的 对于数组 将得到false 
      !(object.propertyIsEnumerable('length'));
}
Copy after login

4) Object.prototype.toString.call


Object.prototype.toString.call(value) == '[object Array]'
Copy after login

The above is the detailed content of Detailed explanation of how to judge js data type and array method instance. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template