


Une brève analyse de l'apprentissage des types de données JavascriptType de symbole
Cet article vous présentera le nouveau type de données d'ES6 : Symbol Parlons de la méthode de déclaration et de l'utilisation du type Symbol. J'espère que cela sera utile à tout le monde !
Symbol est un nouveau type de données primitif qui représente l'unicité. Il s'agit du septième type de données en JavaScript. Les six autres sont : undefined, null, String, Number, Object
Méthode de déclaration
La valeur du symbole est générée via la fonction Symbol. Le nom d'attribut d'un objet peut avoir deux types, l'un est la chaîne d'origine et l'autre est le nouveau type de symbole. Les noms d'attribut sont du type Symbole et sont uniques, garantissant qu'ils n'entreront pas en conflit avec d'autres noms d'attribut. [Recommandations associées : Tutoriel d'apprentissage Javascript]
let s1=Symbol() let s2=Symbol() console.log(s1) //Symbol() console.log(s2) //Symbol() console.log(s1===s2) //false //Symbol函数能接受字符串作为参数,表示对Symbol实例的描述 let s1=Symbol('xxx') let s2=Symbol('hhh') console.log(s1) //Symbol(xxx) console.log(s2) //Symbol(hhh) console.log(s1===s2) //false复制代码
Vous ne pouvez pas utiliser la nouvelle commande avant la fonction Symbol, et une erreur sera signalée. En effet, le symbole généré est une valeur de type primitif, pas un objet. Autrement dit, puisque les valeurs des symboles ne sont pas des objets, les propriétés ne peuvent pas être ajoutées. Équivalent à une chaîne spéciale.
Symbol.for() définit Symbol globalement
Symbol.for() accepte une chaîne comme paramètre, puis recherche une valeur Symbol avec ce paramètre comme nom. Si tel est le cas, renvoyez cette valeur de symbole, sinon créez une nouvelle valeur de symbole nommée avec cette chaîne et enregistrez-la globalement.
let s1 = Symbol.for('xxx') let s2 = Symbol.for('xxx') console.log(s1 === s2) // true function foo(){ return Symbol.for('hello') } const x=foo() const y=Symbol.for('hello') console.log(x === y)//true
Symbol.for() et Symbol(), les deux méthodes d'écriture généreront un nouveau symbole. La différence est que les premiers seront enregistrés dans l’environnement mondial pour la recherche, tandis que les seconds ne le seront pas. Symbol.for() ne renverra pas une nouvelle valeur de type Symbol à chaque fois qu'il est appelé, il vérifiera d'abord si la clé donnée existe déjà, puis créera une nouvelle valeur si elle n'existe pas. La méthode
Symbol.keyFor()
Symbol.keyFor() renvoie une clé de valeur de type Symbol enregistrée.
const s1 = Symbol('foo') console.log(Symbol.keyFor(s1)) // undefined const s2 = Symbol.for('foo') console.log(Symbol.keyFor(s2)) // foo
Scénarios d'application
comme noms d'attributs
Étant donné que les valeurs des symboles ne sont pas égales, cela signifie que Les valeurs des symboles peuvent être utilisées comme identifiants et utilisées dans les noms d'attributs d'objet pour garantir qu'elles le seront n'apparaît pas Propriété portant le même nom. Ceci est utile lorsqu'un objet est composé de plusieurs modules, pour éviter qu'une clé ne soit accidentellement écrasée ou écrasée.
const grade={ 张三:{address:'qqq',tel:'111'}, 李四:{address:'aaa',tel:'222'}, 李四:{address:'sss',tel:'333'}, } console.log(grade) //张三: {address: "qqq", tel: "111"} 李四: {address: "sss", tel: "333"} //对象的key值不能重复 如果有重复 后面的value值就会覆盖前面的 //使用Symbol解决,相当于一个独一无二的字符串 const stu1=Symbol('李四') const stu2=Symbol('李四') console.log(stu1===stu2) //false const grade={ [stu1]:{address:'aaa',tel:'222'}, [stu2]:{address:'sss',tel:'333'}, } console.log(grade) //李四:{address:'sss',tel:'222'} 李四:{address:'sss',tel:'333'} console.log(grade[stu1]) //李四:{address:'sss',tel:'222'} console.log(grade[stu2]) //李四:{address:'sss',tel:'333'}
Traversée d'attributs
const sym=Symbol('imooc') class User{ constructor(name){ this.name=name this[sym]='imooc.com' } getName(){ return this.name+this[sym] } } const user=new User('www') //for in的方法不能遍历到Symbol属性 像被隐藏了 for(let key in user){ console.log(key)//name } //Object.keys(obj)方法也不能遍历到Symbol属性 for(let key of Object.keys(user)){ console.log(key)//name } //Object.getOwnPropertySymbols(obj)只能获取到Symbol属性 for(let key of Object.getOwnPropertySymbols(user)){ console.log(key)//Symbol(imooc) } //Reflect.ownKeys(obj)对象的属性都能获取到 for(let key of Reflect.ownKeys(user)){ console.log(key) //name //Symbol(imooc) }
Élimination de la chaîne magique
La chaîne magique fait référence à une chaîne ou une valeur spécifique qui apparaît plusieurs fois dans le code et forme un couplage fort avec le code. Un code avec un bon style devrait essayer d'éliminer les chaînes magiques et de les remplacer par des variables ayant des significations claires.
function getArea(shape) { let area = 0 switch (shape) { case 'Triangle': area = 1 break case 'Circle': area = 2 break } return area } console.log(getArea('Triangle')) //Triangle和Circle就是魔术字符串。多次出现,与代码形成了“强耦合”,不利于后面的修改和维护。 const shapeType = { triangle: Symbol(), circle: Symbol() } function getArea(shape) { let area = 0 switch (shape) { case shapeType.triangle: area = 1 break case shapeType.circle: area = 2 break } return area } console.log(getArea(shapeType.triangle))
Je suis un novice du front-end. S'il y a un mauvais contenu dans l'article, donnez-moi quelques conseils et discutez-en !
【Recommandation de didacticiel vidéo connexe : front-end Web】
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Dans une base de données MySQL, les champs de genre peuvent généralement être stockés en utilisant le type ENUM. ENUM est un type d'énumération qui nous permet d'en sélectionner une comme valeur d'un champ parmi un ensemble de valeurs prédéfinies. ENUM est un bon choix pour représenter une option fixe et limitée comme le sexe. Examinons un exemple de code spécifique : supposons que nous ayons une table appelée « utilisateurs » qui contient des informations sur l'utilisateur, y compris son sexe. Maintenant, nous voulons créer un champ pour le genre, nous pouvons concevoir la structure du tableau comme ceci : CRE

Dans MySQL, le type de données le plus approprié pour les champs de genre est le type d'énumération ENUM. Le type d'énumération ENUM est un type de données qui permet de définir un ensemble de valeurs possibles. Le champ genre est adapté à l'utilisation du type ENUM car le genre n'a généralement que deux valeurs, à savoir masculin et féminin. Ensuite, j'utiliserai des exemples de code spécifiques pour montrer comment créer un champ de genre dans MySQL et utiliser le type d'énumération ENUM pour stocker les informations de genre. Voici les étapes : Tout d'abord, créez une table nommée utilisateurs dans MySQL, y compris

Python est largement utilisé dans un large éventail de domaines grâce à sa syntaxe simple et facile à lire. Il est crucial de maîtriser la structure de base de la syntaxe Python, à la fois pour améliorer l’efficacité de la programmation et pour acquérir une compréhension approfondie du fonctionnement du code. À cette fin, cet article fournit une carte mentale complète détaillant divers aspects de la syntaxe Python. Variables et types de données Les variables sont des conteneurs utilisés pour stocker des données en Python. La carte mentale affiche les types de données Python courants, notamment les entiers, les nombres à virgule flottante, les chaînes, les valeurs booléennes et les listes. Chaque type de données a ses propres caractéristiques et méthodes de fonctionnement. Opérateurs Les opérateurs sont utilisés pour effectuer diverses opérations sur les types de données. La carte mentale couvre les différents types d'opérateurs en Python, tels que les opérateurs arithmétiques, ratio

Tutoriel JavaScript : Comment obtenir le code d'état HTTP, des exemples de code spécifiques sont requis Préface : Dans le développement Web, l'interaction des données avec le serveur est souvent impliquée. Lors de la communication avec le serveur, nous devons souvent obtenir le code d'état HTTP renvoyé pour déterminer si l'opération a réussi et effectuer le traitement correspondant en fonction de différents codes d'état. Cet article vous apprendra comment utiliser JavaScript pour obtenir des codes d'état HTTP et fournira quelques exemples de codes pratiques. Utilisation de XMLHttpRequest

Lors de la conception de tables de base de données, le choix du type de données approprié est très important pour l'optimisation des performances et l'efficacité du stockage des données. Dans la base de données MySQL, il n'existe pas vraiment de meilleur choix pour le type de données pour stocker le champ de genre, car le champ de genre n'a généralement que deux valeurs : masculin ou féminin. Mais pour des raisons d’efficacité et de gain de place, nous pouvons choisir un type de données approprié pour stocker le champ genre. Dans MySQL, le type de données le plus couramment utilisé pour stocker les champs de genre est le type d'énumération. Un type énumération est un type de données qui peut limiter la valeur d'un champ à un ensemble limité.

Explication détaillée de l'utilisation des types booléens dans MySQL MySQL est un système de gestion de bases de données relationnelles couramment utilisé dans les applications pratiques, il est souvent nécessaire d'utiliser des types booléens pour représenter des valeurs logiques vraies et fausses. Il existe deux méthodes de représentation de type booléen dans MySQL : TINYINT(1) et BOOL. Cet article présentera en détail l'utilisation des types booléens dans MySQL, y compris la définition, l'affectation, la requête et la modification des types booléens, et l'expliquera avec des exemples de code spécifiques. 1. Le type booléen est défini dans MySQL et peut être

Le langage C est un langage de programmation informatique largement utilisé, efficace, flexible et puissant. Pour maîtriser la programmation en langage C, vous devez d’abord comprendre sa syntaxe de base et ses types de données. Cet article présentera la syntaxe de base et les types de données du langage C et donnera des exemples. 1. Syntaxe de base 1.1 Commentaires En langage C, les commentaires peuvent être utilisés pour expliquer le code afin d'en faciliter la compréhension et la maintenance. Les commentaires peuvent être divisés en commentaires sur une seule ligne et en commentaires sur plusieurs lignes. //Ceci est un commentaire sur une seule ligne/*Ceci est un commentaire sur plusieurs lignes*/1.2 Mot clé Langage C

1. Introduction à Python Python est un langage de programmation généraliste, facile à apprendre et puissant. Il a été créé par Guido van Rossum en 1991. La philosophie de conception de Python met l'accent sur la lisibilité du code et fournit aux développeurs de riches bibliothèques et outils pour les aider à créer diverses applications rapidement et efficacement. 2. Syntaxe de base de Python La syntaxe de base de Python est similaire à celle d'autres langages de programmation, notamment les variables, les types de données, les opérateurs, les instructions de flux de contrôle, etc. Les variables sont utilisées pour stocker des données. Les types de données définissent les types de données que les variables peuvent stocker. Les opérateurs sont utilisés pour effectuer diverses opérations sur les données. Les instructions de flux de contrôle sont utilisées pour contrôler le flux d'exécution du programme. 3.Types de données Python en Python
