Maison > Article > interface Web > Points de connaissances moins populaires sur JavaScript
Fonctions natives
Fonctions natives couramment utilisées
String()
Number()
Boolean()
Array()
Object()
Function()
RegExp()
Date()
Erreur()
Symbol()
Propriétés internes [Classe]
Toustype de Les objets avec une valeur de retour de objet contiennent un attribut interne [Classe], Cet attribut ne peut pas être directement Accès, généralement via Object.prototype.toString(..) .
Par exemple :
Object.prototype.toString.call([1,2,3]);
// " [ object Array]"
Valeur de type de base
Object.prototype.toString.call(null);
// "[object Null] "
Wrapper d'objet d'emballage
Puisque la valeur de type de base n'a pas .length et .toString () Ces propriétés et méthodes.
var a = "abc";
var b = new String (a);var c = Object(a); Il n'est généralement pas recommandé de utilisez directement la fonction encapsulée Déballage
Pour encapsuler les valeurs de type de base dans des objets, vous pouvez utiliser la
valueOf()fonction.
var a = new String("abc");var b = new Number(42);
var c = new Boolean(true);a.valueOf(); // "abc"
b.valueOf(); // 42 c.valueOf(); // true
Fonction native en tant que constructeur
Array(..) var a = new Array(1,2,3); 🎜>a; // [1,2,3]
var b = [1,2,3]
b; 🎜>
Constructeur
Array(..),n'est pas obligé d'avoir le mot-clé new, il sera automatiquement ajouté si
ne l'est pas inclus Lorsque le constructeur
Arrayne prend qu'un seul paramètre, le paramètre sera la longueur prédéfinie du tableau
au lieu d'un élément du tableau.
var a = new Array(3); a.length; // 3a; Ne pas créer et utiliser des tableaux de cellules vides Object(..) , Function(..) , et RegExp(..)
Sauf nécessité absolue, n'utilisez pas
Object(..) / Function(..)/ RegExp(..) Date(..)et Erreur(..)
L'heure de création doit utiliser new Date(), est principalement utilisée pour obtenir l'horodatage Unix actuel Date .new() puis récupérez-le via getTime() dans l'objet date.
Créer un objet d'erreur (error objec) Principalement pour obtenir le contexte d'exécution actuel.
Symbole(..)
Type de données de base —— symbole. Les symboles ont des valeurs spéciales uniques. Les utiliser pour nommer des attributs n'entraînera pas facilement des noms en double.
Forme d'attribut statique de Symbol , Symbol.create, Symbol.iterator
obj[Sybol.iterator] = function() {/*..*/}
Utilisez le constructeur natif Symbol(..) pour personnaliser les symboles. Vous ne pouvez pas apporter de nouveau <.>Mot clé, sinon une erreur sera signalée.
var mysym = Symbol("mon propre symbole"); mysym; // Symbol(mon propre symbole) mysym.toString( /); / "Symbole (mon propre symbole)" typeof mysym; // "symbole" var a = { }; a[mysym ] = "foobar"; Object.getOwnPropertySymbols(a); // [Symbole (mon propre symbole)]Type de prototype
Le constructeur natif a son propre objet .prototype tel que : Array.prototype,
String.prototype.>
String#indexOf(..)Recherchez la position de la chaîne spécifiée dans la chaîne.
String#charAt(..)Récupère le caractère à la position spécifiée dans la chaîne
String#substr(.. ),String #substring(..)et String# slice(..)
Obtenez la partie spécifiée de la chaîne
String#toUpperCase()et String#toLowerCase()
Convertir la chaîne en majuscules et minuscules
String #trim()sera renvoyé sous forme de nouvelle chaîne
到 〉
🎜> Conversion de types de valeurs
Conversion d'une valeur à partir d'une tapez vers un autre, c'est le cas affiché,
Les cas implicites sont généralement des transtypages.La conversion de type en JavaScript
renvoie toujours un type de base scalaire.Opération de valeur abstraite ToString Opération abstraite ToString , qui est responsable de la gestion des non -strings Conversion en chaîne
La méthode par défauttoString()
du tableau a été redéfinie pour stringifier toutes les unités avant de les concaténer ensemble.var a = [1,2,3];
a.toString(); // "1,2,3" JSONRemplacement de chaîne,JSON.stringify(..) se produira automatiquement lors de la rencontre de non défini, fonction et symbole dans l'objet est ignoré et null est renvoyé dans le tableau.
Par exemple :
JSON.stringify(undéfini); // undéfini
JSON.stringify(function(){}) ; // undefined
JSON.stringify(
[1,undefined,function(){},4]
); , 4]"
JSON.stringify(
{a:2,b:function(){}}
); // "{"a":2 } "
toJSON() devrait renvoyer une valeur appropriée, qui peut être de n'importe quel type, puis JSON.stringify(. . ) Alignement pour stringification.
ToNumber
Parfois, vous devez utiliser des valeurs non numériques comme nombres, comme des opérations mathématiques.
vrai est converti en 1, faux est converti en 0, non défini est converti en NaN
null est converti en 0
Afin de convertir la valeur en type de base correspondant, l'opération abstraite ToPrimitive, vérifie d'abord si la valeur a un valueOf() méthode, et si c'est le cas, utilisez-la. La valeur est convertie. Sinon, utilisez la valeur de retour de toString()
pour effectuer une conversion de type forcée. Si ni valueOf() ni toString() ne renvoient la valeur , une erreur TypeError se produira.
ToBoolean
Fausse valeur :
Les valeurs peuvent être divisées dans les deux catégories suivantes.
1. peut être converti à la valeur de faux
2.Autres ( est un type léger converti en la valeur de true)
Les valeurs suivantes sont fausses
undefined
null
false
+0,-0 et NaN
""
Objet à fausse valeur : Dans certains cas spécifiques, le navigateur, basé sur la syntaxe JavaScript régulière crée des valeurs étrangères, ce sont les "False Value Object"
logous
Une vraie valeur See More est une valeur en dehors de la liste des fausses valeursCastation explicite
ccoleg dans une chaîne et un nombre la main de la banque� La conversion d'affichage entre la chaîne et le nombre se fait via String(..) et Nombre(..). Casting explicite entre les deux var a = 🎜> Il existe d'autres moyens d'obtenir une conversion d'affichage entre les chaînes et les nombres var a = 42 ; Convertir l'affichage de la date en nombre Opérateur unaire+ est de convertir un objet date s'opposer à un numéro . var timestamp = +new Date(); Analyser explicitement la chaîne numérique Par exemple : var a = "42"; var b = "42px"; Nombre (a); // 42 parseInt(a); // 42 Nombre(b); // NaN parseInt(b); parseInt(..) est pour les chaînes, comme parseInt(..) pour afficher la conversion en valeur booléenne ToBoolean ToBoolean var a = "0";var b = [];var c = {}; var d = ""; var e = 0; var f = null; var g; Booléen(a); // vrai Booléen(b); // vrai Booléen(c); // vrai Boolea(d); // faux Boolea(e); // faux Boolea(f); // faux Boolea(g); /false var a = "0"; var b = [];var c = {}; var d = ""; var e = 0; var f = null; var g; !!a; // vrai !!b; // vrai !!c; // vrai !!d; // faux !!e; // faux !!f; // faux !!g; > Casting implicite Implicitement simplifié Conversion de conversion implicite entre les chaînes et les nombres L'opérateur + peut être utilisé à la fois pour l'addition de nombres et la concaténation de chaînes. var a = "42"; var b = "0"; var c= 42; var d = 0 ; a + b; // "42" c + d; // 42 Objet - L'opération est similaire à + var a = [3]; var b = [1]; a - b ; // 2 Conversion implicite du booléen en nombre Conversion implicite en valeur booléenne Les situations suivantes entraîneront une conversion de conversion implicite 1 expression conditionnelle dans l'instruction if(..) . 2.pour(..;...;..)Expression du jugement conditionnel dans la déclaration(La seconde ) 3.while(..) et do..while(..) Conditions dans la boucle Expression de jugement . 4. ? : Expression conditionnelle en 5.Opérateur logique|| (OU logique) et ( ET logique ) L'opérande à gauche de (comme expression conditionnelle) || et && || Il doit être de type booléen, mais la valeur d'un des deux opérandes var a = 42;var b = "abc"; || , la valeur du premier nombre sera être renvoyé. Si est faux , le deuxième opérande sera renvoyé. && est le contraire. || fonction foo(a,b){a = a || "bonjour";b = b || console.log(a + " " + b ); Casting de symboles Égalité détendue et égalité stricte "== autorise les conversions dans les comparaisons d'égalité, tandis que === n'autorise pas " Égalité abstraite Il y en a quelques non conventionnelles à noter NaN n'est pas égal à NaN +0 Égal à-0 Inégalité relâchée != est Le contraire de == est le même que !== Caractères Comparaison d'égalité entre les chaînes et les nombres 1.Si Type(x) est un nombre, Type( y ) est une chaîne, alors le résultat de x== ToNumber(y) est renvoyé. 2.Si Type(x) est une chaîne, Type(y) est un nombre, alors le résultat de ToNumber(x)== y est renvoyé. Comparaison d'égalité entre les autres types et les types booléens == == L'endroit le plus sujet aux erreurs est vrai et faux et autres types Si Type(x) est un type booléen, Renvoyez ensuite le résultat de ToNumber(x) == y IfType(y) est un type booléen, puis renvoie le résultat de x == ToNumber(y) Premièrement : Inversement et indéfini implique également des moulages d'ermites. 1.Si x est est indéfini , alors le résultat est vrai 2.Si x est indéfini, y est null, Le résultat estvrai var a == null; var b; a == b; vrai a == null; // vrai b == null; // vrai a == faux b == faux; // faux a == "" ; // faux b == ""; // faux a == 0; false b == 0; // false Comparaison d'égalité entre objets et non-objets À propos des objets et (Objet/Fonction/ Array) et primitives scalaires (String/Number/Boolean Comparaison entre les valeurs ). 1.Si Type(x) est une chaîne ou un nombre, type(y) est un objet, renvoie le résultat de x == ToPrimitive(y) 2.If Type(x) est un objet, Type(y) est une chaîne ou un nombre, puis retourne ToPromitive( x) Le résultat de == y . var a = 42; var b = [42]; a == b; // vrai var a = "abc"; var b = Object(a); // new String(a) Idem a === b; // faux a == b; // vrai a == b Le résultat est vrai, devrait être b lance via ToPromitive , et renvoie la valeur de type de base "abc" , égal à a . Comparaison de valeurs faussement égales Ce qui suit sont des comparaisons régulières et non conventionnelles "0" = = null; // false "0" == non défini; // false "0" == false -- Halo ! "0" == NaN; // faux "0" == 0; // vrai "0" == "" / / false false == null; // false false == non défini; // false false == NaN; false == 0; // vrai -- Halo ! false == "" // vrai -- Halo ! false == [] // vrai -- Halo ! false == {} // faux "" == null; // faux "" == non défini; // faux "" == NaN; // faux "" == 0; // vrai -- Halo ! "" == []; // vrai -- Halo ! "" == {}; // faux 0 == null; // faux 0 == non défini; // faux 0 == NaN; // faux 0 == []; Parce que ce sont des faux positifs. Cas extrêmes Conversion de type forcée des valeurs booléennes [] == ![] devient [] == false, Utilisez en toute sécurité la conversion implicite 1.Si les valeurs des deux côtés ont vrai Ou faux, Ne jamais utiliser ==.2.S'il y a ou 0 , essayez de ne pas utiliser ==. À ce stade, il est préférable de utilisez === pour éviter la conversion de type forcée. Les deux côtés sont des comparaisons de chaînes var a = ["42"];var b = ["043"]; a < > et b ne sont pas convertis en nombres car ToPrimitive renvoie une chaîne, et compare les deux chaînes "42" et "043" , car "0" est alphabétiquement plus petit que "4", donc le résultat final est faux. De mêmevar a = [4,2]; a < a est converti en "4,2", b est converti en " 0,4,3” Le même style est comparé par ordre alphabétique. var a = {b: 42}; var b = {b:43}; a < est [objet Objet], b est aussi [objet Objet] donc par ordre alphabétique n'est pas vrai. L'exemple suivant
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!