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

Example analysis of typeof and type judgment in JavaScript

黄舟
Release: 2017-10-27 09:20:34
Original
1661 people have browsed it

typeof

ECMAScript has 5 primitive types, namely Undefined, Null, Boolean, Number and String. We all know that we can use the typeof operator to find the type of a variable, but for reference type variables only <a href="http://www.php.cn/wiki/60.html" target="_blank">object</a> will be returned. In other words, typeof can only correctly identify basic type value variables.

var a = "abc";
console.log(typeof a); // "string"var b = 123;
console.log(typeof b); // "number"var c = true;
console.log(typeof c); // "boolean"var d = null;
console.log(typeof d); // "object"var f = undefined;
console.log(typeof f); // "undefined"var g;
console.log(typeof g); // "undefined"console.log(typeof x); // "undefined"
Copy after login

You may ask why the typeof operator returns "object" for null values. This was actually a bug in JavaScript's original implementation, which was then adopted by ECMAScript. Now, null is considered a placeholder for an object, thus explaining the contradiction, but technically it's still a primitive value.

The last one is strange, typeof a non-existent variable

x actually returns "object" instead of "undefined".

We are coming to the following code:

var a = function() { };
console.log(typeof a); // "function"var b = [1,2,3]; 
console.log(typeof b); // "object"var c = { };
console.log(typeof c); // "object"
Copy after login

Returns "object" for both arrays and objects, so a common need in our daily development is how to determine whether a variable is an array or an object.

Type judgment

Type judgment is generally to judge whether it is an array or an empty object. This is the judgment method I have used or seen every day for this requirement

Judge whether it is an array

There is an array:

var a = [1,2,3,4, 5];

Method one:

toString.call(a); // "[object Array]"
Copy after login

Method two:

a instanceof Array; //true
Copy after login

Method three:

a.constructor == Array; //true
Copy after login

The first method is more general and also It is the abbreviation of

Object.prototype.toString.call(a). The variables judged by

instanceof and constructor must be declared on the current page. For example, a page (parent page) has a frame, A page (subpage) is referenced in the frame, an a is declared in the subpage, and assigned to a variable of the parent page. When judging the variable, Array == object.constructor will Returnfalse;

var a = [1,2,3,4,5];
console.log(toString.call(a)); // "[object Array]"                     
console.log(a instanceof Array); //trueconsole.log(a.constructor == Array); //true
Copy after login

Judge whether it is an empty object

There are variables:

var obj = {};

Method 1 :

JSON.stringify(obj); // "{}"
Copy after login

Determine whether it is an empty brace by converting it into a JSON object

Method 2:

if(obj.id){ //如果属性id存在....}
Copy after login

This method is relatively simple, and most people can think of it, provided that You have to know that there is a certain attribute in the object.

Method 3:

function isEmptyObject(e) { var t; for (t in e) return !1; return !0 } //trueisEmptyObject(obj); //falseisEmptyObject({ "a":1, "b":2});
Copy after login
This method is the implementation of jQuery’s isEmptyObject() method.

The above is the detailed content of Example analysis of typeof and type judgment in JavaScript. 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
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!