typeof
ECMAScript a 5 types primitifs, à savoir Undefined, Null, Boolean, Number et String. Nous savons tous que nous pouvons utiliser typeofoperator pour trouver le type d'une variable, mais pour les variables de type référence, il ne renverra que <code><a href="http://www.php.cn/wiki/60.html" target="_blank">object</a>
object
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"
Vous pouvez vous demander pourquoi l'opérateur typeof renvoie "objet" pour les valeurs nulles. Il s'agissait en fait d'un bug dans l'implémentation originale de JavaScript, qui a ensuite été adoptée par ECMAScript. Désormais, null est considéré comme un espace réservé pour l' objet
, expliquant ainsi la contradiction, mais techniquement, c'est toujours une valeur primitive.x
Le dernier est étrange, le type d'une variable inexistante
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];
Il existe un tableau :
toString.call(a); // "[object Array]"
a instanceof Array; //true
a.constructor == Array; //true
Object.prototype.toString.call(a)
La première méthode est plus générale, qui est l'abréviation de
instanceof
constructor
et doivent être déclarées sur la page actuelle. Par exemple, une page (page parent) a un frameArray == object.constructor
, et le cadre fait référence à une page. (page enfant). Déclarez un a dans la page enfant et attribuez-le à une variable de la page parent. A ce moment, si la variable est jugée, false
retournera
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});
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!