En JavaScript, les types de données que l'opérateur typeof peut renvoyer sont : "undefined", "object", "boolean", "number", "string", "symbol", "function", etc.
L'environnement d'exploitation de ce tutoriel : système Windows 7, JavaScript version 1.8.5, ordinateur Dell G3.
Utilisez l'opérateur typeof
pour renvoyer le type de données de la variable.
Regardons la valeur de typeof correspondant à chaque type de données :
Data type | Result |
---|---|
Undefined | "undefined" |
Null | "objet" |
Booléen | "booléen" |
Nombre | "numéro" |
chaîne | "chaîne" |
Symbole (nouveau dans ECMAScript 6) | "symbole" |
Hôte objet (Fourni par l'environnement JS, tel que le navigateur) | Dépend de l'implémentation |
Objet de fonction | "fonction" |
tout autre objet | "objet" |
Regardez le spécifique exemples :
// Numbers typeof 37 === 'number'; typeof 3.14 === 'number'; typeof Math.LN2 === 'number'; typeof Infinity === 'number'; typeof NaN === 'number'; // 尽管NaN是"Not-A-Number"的缩写,意思是"不是一个数字" typeof Number(1) === 'number'; // 不要这样使用! // Strings typeof "" === 'string'; typeof "bla" === 'string'; typeof (typeof 1) === 'string'; // typeof返回的肯定是一个字符串 typeof String("abc") === 'string'; // 不要这样使用! // Booleans typeof true === 'boolean'; typeof false === 'boolean'; typeof Boolean(true) === 'boolean'; // 不要这样使用! // Symbols typeof Symbol() === 'symbol'; typeof Symbol('foo') === 'symbol'; typeof Symbol.iterator === 'symbol'; // Undefined typeof undefined === 'undefined'; typeof blabla === 'undefined'; // 一个未定义的变量,或者一个定义了却未赋初值的变量 // Objects typeof {a:1} === 'object'; // 使用Array.isArray或者Object.prototype.toString.call方法可以从基本的对象中区分出数组类型 typeof [1, 2, 4] === 'object'; typeof new Date() === 'object'; // 下面的容易令人迷惑,不要这样使用! typeof new Boolean(true) === 'object'; typeof new Number(1) ==== 'object'; typeof new String("abc") === 'object'; // 函数 typeof function(){} === 'function'; typeof Math.sin === 'function';
Nous trouverons un problème, c'est-à-dire que le type de n'est pas précis pour déterminer le type de données. Par exemple, le type de valeur de retour des tableaux, des expressions régulières, des dates et des objets est entièrement un objet, ce qui provoquera des erreurs.
Donc, sur la base du type de détermination du type, nous devons également utiliser la méthode Object.prototype.toString pour déterminer davantage le type de données.
Regardons la différence entre les valeurs de retourde la méthode toString et de la méthode typeof dans le cas du même type de données :
data | toString | typeof |
---|---|---|
"foo" | String | string |
new String("foo") | String | object |
new Number(1.2) | Number | object |
vrai | Booléen | booléen |
nouveau Booléen (vrai) | Booléen | objet |
nouvelle Date() | Date | objet |
nouvelle Erreur() | Erreur | objet |
nouveau tableau (1, 2, 3) | Array | object |
/abc/g | RegExp | object |
new RegExp("meow") | RegExp | object |
Vous pouvez voir que l'utilisation de la méthode toString peut correctement distinguer les types Array, Error, RegExp, Date et autres.
Nous utilisons donc généralement cette méthode pour vérifier le type de données.
【Recommandations associées : Tutoriel d'apprentissage Javascript】
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!