Ce que cet article vous apporte est une introduction aux méthodes de jugement de type JavaScript (exemples de code). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Jugement du type de données JS
Parfois, il est nécessaire de juger le type de données et de traiter divers jugements logiques complexes. Commençons par les plus couramment utilisés.
1.typeof
L'opérateur typeof renvoie une chaîne et représente le type de la variable. " symbole"
objet hôte (fourni par l'environnement JS) Dépend de l'implémentation
var testString = 'adus', testArray = [], testBoolean = true, testNumber = 0, testObject = {}, testNull = null, testUndefined = undefined console.log(typeof testString);//string console.log(typeof testArray);//object console.log(typeof testBoolean);//boolean console.log(typeof testNumber);//number console.log(typeof testObjec);//object console.log(typeof testNull);//object console.log(typeof testUndefined);//undefined
Hein ? Quelque chose ne va pas. Pourquoi les tableaux, null, etc. sont-ils tous des objets ? ? ? Veuillez regarder vers le bas pour voir les
instances de types Function ou Array, qui sont en fait des extensions basées sur des instances d'Object. Il a juste des attributs plus uniques.
Dans l'implémentation originale de JavaScript, une valeur en JavaScript était représentée par une balise représentant le type et la valeur réelle des données. La balise de type de l'objet est 0.
2.instanceof
L'opérateur instanceof est utilisé pour tester si l'attribut prototype du constructeur apparaît n'importe où dans la chaîne de prototypes de l'objet. En termes simples, cela signifie si un. La variable est une certaine instance de l'objet.
instance d'objet du constructeur
3.Object.prototype.toString()
Chaque objet a un Méthode toString() qui est automatiquement appelée lorsque l'objet est représenté sous forme de valeur texte ou lorsqu'un objet est référencé dans le format de chaîne attendu. Par défaut, la méthode toString() est héritée par chaque objet Object. Si cette méthode n'est pas remplacée dans un objet personnalisé, toString() renvoie "[object type]", où type est le type de l'objet.
Function.prototype.call( thisArg ) / Function.prototype.apply( thisArg )
function fnc(){} var newFnc = new fnc(); console.log(newFnc.__proto__ == fnc.prototype);//true console.log( newFnc instanceof fnc ) //true /*String对象和Date对象都属于Object类型和一些特殊情况*/ var simpleStr = "This is a simple string"; var myString = new String(); var newStr = new String("String created with constructor"); var myDate = new Date(); var myObj = {}; var myNonObj = Object.create(null); simpleStr instanceof String; // 返回 false, 检查原型链会找到 undefined myString instanceof String; // 返回 true newStr instanceof String; // 返回 true myString instanceof Object; // 返回 true myObj instanceof Object; // 返回 true, 尽管原型没有定义 ({}) instanceof Object; // 返回 true, 同上 myNonObj instanceof Object; // 返回 false, 一种创建对象的方法,这种方法创建的对象不是Object的一个实例 myString instanceof Date; //返回 false myDate instanceof Date; // 返回 true myDate instanceof Object; // 返回 true myDate instanceof String; // 返回 false
Utiliser la méthode appropriée dans le scénario approprié vous évitera des soucis et garantira la simplicité et la robustesse du code.
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!