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"
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 variablex actually returns "object" instead of "undefined".
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"
var a = [1,2,3,4, 5];
toString.call(a); // "[object Array]"
a instanceof Array; //true
a.constructor == Array; //true
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 Return
false;
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
var obj = {};
JSON.stringify(obj); // "{}"
if(obj.id){ //如果属性id存在....}
function isEmptyObject(e) { var t; for (t in e) return !1; return !0 } //trueisEmptyObject(obj); //falseisEmptyObject({ "a":1, "b":2});
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!