Maison  >  Article  >  interface Web  >  Comment forcer la conversion de valeurs numériques en javascript ? (Résumé de la méthode)

Comment forcer la conversion de valeurs numériques en javascript ? (Résumé de la méthode)

不言
不言original
2018-09-20 17:45:473121parcourir

Le contenu de cet article explique comment forcer la conversion des valeurs en javascript ? (Résumé de la méthode) a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère que cela vous sera utile.

Les types de données Javascript sont divisés en types de données de base et types de données de référence

Données de base : nombre, booléen, non défini, nul, chaîne ;

Données de référence : objet ;

Quand 0.000...01, lorsque le point décimal est supérieur ou égal à 7 chiffres, il sera automatiquement converti en notation scientifique

Quand 20000...00, lorsque la partie entière est supérieur ou égal à 22 chiffres, il sera automatiquement converti en notation scientifique.

Numéro(x) : un paramètre

  • Lorsque le paramètre est de type Nombre : il peut être affiché correctement ;

console.log(Number(1));        //1
console.log(Number(1e-7));    //1e-7
console.log(Number(0b111));  //7
console.log(Number(NaN));   //NaN
  • Lorsque le paramètre est de type booléen : true->1;fasle->0;

console.log(Number(true));  //1
console.log(Number(false)); //0
  • Lorsque le paramètre est indéfini : Sa valeur est NaN

console.log(Number(undefined)); //NaN
  • Lorsque le paramètre est nul :

console.log(Number(null));    //0
  • Lorsque le paramètre est de type String :

//数字字符串
console.log(Number("123"));   //123
console.log(Number("-123"));  //-123
console.log(Number("12.3"));  //12.3
console.log(Number("1e-7"));  //1e-7
console.log(Number("0xff"));  //255
console.log(Number("00123")); //123    
console.log(Number("   123")); //123
console.log(Number("\t\n123")); //123
//数字+字符或全字符字符串
console.log(Number('a123'));  //NaN
console.log(Number("false")); //NaN
console.log(Number("a123"));  //NaN
//空串或者空格字符串
console.log(Number("\t\n"));   //0
console.log(Number("  "));     //0
console.log(Number(""));       //0
  • Lorsque le type de paramètre est objet : effectuer .valueOf() d'abord, si vous obtenez L'objet exécute ensuite toString() jusqu'à ce que le type de données de base soit obtenu, par exemple {}.valueOf().toString() = "[object Object]" Le résultat final de number est NaN

console.log(Number({}));  //NaN
console.log(Number([1])); //1
console.log(Number([1,2]));  //NaN
cosole.log(Number([]));    //0

parseInt(x,y) : 2 paramètres,

Le processus est le suivant : convertissez d'abord String(x) en chaîne, puis convertissez la valeur en un nombre décimal en utilisant la base y comme base, s'il n'est pas renseigné, c'est 10, la plage de y : [2,36]

Quand il n'y a pas de paramètre y :

  • Lorsque le paramètre x est un nombre : cela vaut-il la peine de le noter ? C'est une valeur de type 0,001, 1e-7. La valeur après la virgule décimale (e) sera ignorée et la valeur précédente sera renvoyée. .

console.log(parseInt(123));   //123
console.log(parseInt(1e-7));  //1
console.log(parseInt(0xff));  //255
console.log(parseInt(NaN));   //NaN
console.log(parseInt(0.00001)); //0
  • Lorsque le paramètre x est booléen, indéfini, nul :

console.log(parseInt(true));  //NaN
console.log(parseInt(false)); //NaN
console.log(parseInt(undefined)); //NaN
console.log(parseInt(null));    //NaN
console.log(parseInt(""));   //NaN
console.log(parseInt("-123"));  //-123
console.log(parseInt("  "));  //NaN
console.log(parseInt("\t\n"));   //NaN
console.log(parseInt("a123")); //NaN
console.log(parseInt("123a")); //123
  • Avec les paramètres x, y, lorsque y est 0, nul, non défini, NaN, y sera ignoré et par défaut à 10. Lorsqu'il dépasse la plage de [2, 36], NaN sera renvoyé Lorsque la valeur x peut être représentée par y base Renvoie NaN, et le reste peut en représenter autant que

console.log(parseInt({1:2}));   //"[object Object]"->NaN
console.log(parseInt([]));      //""->NaN
console.log(parseInt([1,2]));   //"1,2"->//1
parseFloat(x) : un paramètre qui peut représenter correctement le flottant. les nombres de points et la notation scientifique, mais ne prend pas en charge les chaînes. Le nombre ne peut pas être représenté correctement, le reste est le même que parseInt(x,10)
  • String(), .toString()

Premier : non défini, null aucun L'attribut toString() ne peut transmettre que String(undefiend)
console.log(parseInt("f",2));   //NaN
console.log(parseInt("11f",2);  //3
console.log(parseInt("123",37)); //NaN
console.log(parseInt("0xff",0));  //255
console.log(parseInt("0xff",NaN)); //255
console.log(parseInt("ff",[]));  //NaN

console.log(parseFloat(0xff));  //255
console.log(parseFloat("0xff"));  //0  
console.log(parseInt("0xff"));   //255  个人猜测parseInt(x,y)有y的存在所以能正确输出
console.log(parseFloat(1e22));   //1e22
console.log(parseFloat(1e-7));   //1e-7
console.log(parseFloat("00123"));  //123
console.log(parseFloat(" "));     //NaN
Deuxième : y.toString(x), qui signifie convertir la valeur cible y en une valeur basée sur x

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn