Conseils JavaScript
Les tableaux peuvent être trouvés partout en JavaScript, et nous pouvons faire beaucoup de choses intéressantes en utilisant le nouvel opérateur de répartition de fonctionnalités dans ECMAScript 6.
1. Itérer sur un tableau vide
Les tableaux créés directement en JavaScript sont lâches, il y aura donc de nombreux pièges. Essayez de créer un tableau à l'aide du constructeur de tableau et vous le comprendrez instantanément.
const arr = new Array(4); [undefined, undefined, undefined, undefined] // 谷歌浏览器中是 [empty x 4]
Vous constaterez qu'il est très difficile de parcourir un tableau lâche et d'appeler certaines transformations.
const arr = new Array(4); arr.map((elem, index) => index); [undefined, undefined, undefined, undefined]
Pour résoudre ce problème, vous pouvez utiliser Array.apply lors de la création d'un nouveau tableau.
const arr = Array.apply(null, new Array(4)); arr.map((elem, index) => index); [0, 1, 2, 3]
2. Passez un paramètre vide à la méthode
Si vous souhaitez appeler une méthode et ne renseignez aucun des paramètres, JavaScript le fera signaler une erreur.
method('parameter1', , 'parameter3'); // Uncaught SyntaxError: Unexpected token ,
Une solution courante consiste à passer null ou undefined.
method('parameter1', null, 'parameter3') // or method('parameter1', undefined, 'parameter3');
Avec l'introduction de l'opérateur spread dans ES6, il existe un moyen plus propre de transmettre des arguments vides à une méthode. Comme mentionné ci-dessus, les tableaux sont lâches, donc leur transmettre des valeurs nulles est OK, et nous en profitons.
method(...['parameter1', , 'parameter3']); // 代码执行了...
3. Déduplication du tableau
Je n'ai jamais compris pourquoi le tableau ne fournit pas de fonction intégrée qui nous permet d'obtenir facilement la valeur dédupliquée . L'opérateur spread nous aide. L'utilisation de l'opérateur spread avec Set peut générer un tableau unique.
const arr = [...new Set([1, 2, 3, 3])]; // [1, 2, 3]
4. Obtenez les éléments d'un tableau de l'arrière vers l'avant
Si vous souhaitez obtenir les éléments d'un tableau de l'arrière vers l'avant, vous pouvez écrire comme ceci :
var arr = [1, 2, 3, 4] console.log(arr.slice(-1)) // [4] console.log(arr.slice(-2)) // [3, 4] console.log(arr.slice(-3)) // [2, 3, 4] console.log(arr.slice(-4)) // [1, 2, 3, 4]
5. Phrase conditionnelle de court-circuit
Si vous souhaitez exécuter une fonction lorsque la valeur logique d'une certaine condition est vraie, comme ceci :
if (condition) { dosomething() }
À ce stade, vous pouvez utiliser un court-circuit comme ceci :
condition && dosomething()
6. Utilisez l'opérateur "||" pour définir la valeur par défaut<🎜. >
Si vous devez attribuer une valeur par défaut à une variable, qui peut être simplement écrite comme ceci :
var a console.log(a) // undefined a = a || 'default value' console.log(a) // default value a = a || 'new value' console.log(a) // default value
7. Utilisez Object.is() dans la comparaison d'égalité.
nous Nous savons tous que JavasScript est faiblement typé, et lorsque nous utilisons == à des fins de comparaison, dans certains cas, des choses inattendues se produiront en raison de la conversion de type ou de la "conversion de l'un des deux opérandes en l'autre puis comparer" le résultat. Comme ceci :
0 == ' ' //true null == undefined //true [1] == true //true
NaN === NaN //false
Object.is(0 , ' '); //false Object.is(null, undefined); //false Object.is([1], true); //false Object.is(NaN, NaN); //true
8. Donner une fonction Lier un objet
Nous avons souvent besoin de lier un objet à celui d'une méthode. En JS, si vous souhaitez appeler une fonction et spécifier ceci, vous pouvez utiliser la méthode bind.
Syntaxe de liaison
fun.bind(thisArg[, arg1[, arg2[, ...]]])
Paramètres
thisArgLorsque la fonction de liaison est appelée, le Les paramètres serviront de pointeurs vers la fonction d'origine lors de son exécution.arg1, arg2, …
Lorsque la fonction liée est appelée, ces paramètres seront transmis à la méthode liée avant les paramètres réels.Valeur de retour
Renvoie une copie de la fonction originale modifiée par cette valeur et les paramètres d'initialisation spécifiésInstance dans JS
const myCar = { brand: 'Ford', type: 'Sedan', color: 'Red' }; const getBrand = function () { console.log(this.brand); }; const getType = function () { console.log(this.type); }; const getColor = function () { console.log(this.color); }; getBrand(); // object not bind,undefined getBrand(myCar); // object not bind,undefined getType.bind(myCar)(); // Sedan let boundGetColor = getColor.bind(myCar); boundGetColor(); // Red
9. Obtenez l'extension de fichier
Solution 1 : Expression régulièrefunction getFileExtension1(filename) { return (/[.]/.exec(filename)) ? /[^.]+$/.exec(filename)[0] : undefined; }
function getFileExtension2(filename) { return filename.split('.').pop(); }
function getFileExtension3(filename) { return filename.slice((filename.lastIndexOf(".") - 1 >>> 0) + 2); } console.log(getFileExtension3('')); // '' console.log(getFileExtension3('filename')); // '' console.log(getFileExtension3('filename.txt')); // 'txt' console.log(getFileExtension3('.hiddenfile')); // '' console.log(getFileExtension3('filename.with.many.dots.ext')); // 'ext'
- <🎜 Le >String. La méthode lastIndexOf() renvoie la dernière position où la valeur spécifiée ('.' dans cet exemple) apparaît dans la chaîne qui appelle cette méthode, ou -1 si elle n'est pas trouvée.
- Pour 'filename' et '.hiddenfile', les valeurs de retour de lastIndexOf sont respectivement 0 et -1. L'opérateur de décalage à droite non signé (»>) convertit -1 en. 4294967295, convertissez -2 en 4294967294. Cette méthode peut garantir que le nom du fichier reste inchangé dans les cas extrêmes.
- String.prototype.slice() Extrait l'extension du fichier de l'index calculé ci-dessus. Si l'index est plus grand que la longueur du nom de fichier, le résultat est "".
Réécrire la méthode prototype de l'objet intégré Le code externe peut être exposé par réécriture. le code et les fonctions qui modifient les paramètres liés. Il s'agit d'un problème de sécurité sérieux lors de l'utilisation de polyfills sous l'approche es5.
// bind polyfill 示例 function bind(fn) { var prev = Array.prototype.slice.call(arguments, 1); return function bound() { var curr = Array.prototype.slice.call(arguments, 0); var args = Array.prototype.concat.apply(prev, curr); return fn.apply(null, args); }; } // unapply攻击 function unapplyAttack() { var concat = Array.prototype.concat; Array.prototype.concat = function replaceAll() { Array.prototype.concat = concat; // restore the correct version var curr = Array.prototype.slice.call(arguments, 0); var result = concat.apply([], curr); return result; }; }
上面的函数声明忽略了函数bind的prev参数,意味着调用unapplyAttack之后首次调用.concat将会抛出错误。
使用Object.freeze,可以使对象不可变,你可以防止任何内置对象原型方法被重写。
(function freezePrototypes() { if (typeof Object.freeze !== 'function') { throw new Error('Missing Object.freeze'); } Object.freeze(Object.prototype); Object.freeze(Array.prototype); Object.freeze(Function.prototype); }());
11.Javascript多维数组扁平化
下面是将多位数组转化为单一数组的三种不同方法。
var arr = [[1, 2],[3, 4, 5], [6, 7, 8, 9]];
期望结果:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
解决方案1:使用concat()和apply()
var newArr = [].concat.apply([], arr); // [1, 2, 3, 4, 5, 6, 7, 8, 9]
解决方案2:使用reduce()
var newArr = arr.reduce(function(prev, curr) { return prev.concat(curr); }); // [1, 2, 3, 4, 5, 6, 7, 8, 9]
解决方案3:使用 ES6 的展开运算符
var newArr = [].concat(...arr); console.log(newArr); // [1, 2, 3, 4, 5, 6, 7, 8, 9]
12. 函数中如何使用可选参数(包括可选回调函数)
实例函数中第2个与第3个参数为可选参数
function example( err, optionA, optionB, callback ) { // 使用数组取出arguments var args = new Array(arguments.length); for(var i = 0; i < args.length; ++i) { args[i] = arguments[i]; }; // 第一个参数为错误参数 // shift() 移除数组中第一个参数并将其返回 err = args.shift(); // 如果最后一个参数是函数,则它为回调函数 // pop() 移除数组中最后一个参数并将其返回 if (typeof args[args.length-1] === 'function') { callback = args.pop(); } // 如果args中仍有元素,那就是你需要的可选参数 // 你可以像这样一个一个的将其取出: if (args.length > 0) optionA = args.shift(); else optionA = null; if (args.length > 0) optionB = args.shift(); else optionB = null; // 像正常一样继续:检查是否有错误 if (err) { return callback && callback(err); } // 打印可选参数 console.log('optionA:', optionA); console.log('optionB:', optionB); console.log('callback:', callback); /* 你想做的逻辑 */ } // ES6语法书写更简短 function example(...args) { // 第一个参数为错误参数 const err = args.shift(); // 如果最后一个参数是函数,则它为回调函数 const callback = (typeof args[args.length-1] === 'function') ? args.pop() : null; // 如果args中仍有元素,那就是你需要的可选参数你可以像这样一个一个的将其取出: const optionA = (args.length > 0) ? args.shift() : null; const optionB = (args.length > 0) ? args.shift() : null; // ... 重复取更多参数 if (err && callback) return callback(err); /* 你想做的逻辑 */ }
推荐教程:《JS教程》
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)

Comment utiliser JS et Baidu Map pour implémenter la fonction de panoramique de la carte Baidu Map est une plate-forme de services cartographiques largement utilisée, souvent utilisée pour afficher des informations géographiques, le positionnement et d'autres fonctions dans le développement Web. Cet article explique comment utiliser JS et l'API Baidu Map pour implémenter la fonction de panoramique de la carte et fournit des exemples de code spécifiques. 1. Préparation Avant d'utiliser l'API Baidu Map, vous devez d'abord demander un compte de développeur sur Baidu Map Open Platform (http://lbsyun.baidu.com/) et créer une application. Création terminée

La technologie de détection et de reconnaissance des visages est déjà une technologie relativement mature et largement utilisée. Actuellement, le langage d'application Internet le plus utilisé est JS. La mise en œuvre de la détection et de la reconnaissance faciale sur le front-end Web présente des avantages et des inconvénients par rapport à la reconnaissance faciale back-end. Les avantages incluent la réduction de l'interaction réseau et de la reconnaissance en temps réel, ce qui réduit considérablement le temps d'attente des utilisateurs et améliore l'expérience utilisateur. Les inconvénients sont les suivants : il est limité par la taille du modèle et la précision est également limitée ; Comment utiliser js pour implémenter la détection de visage sur le web ? Afin de mettre en œuvre la reconnaissance faciale sur le Web, vous devez être familier avec les langages et technologies de programmation associés, tels que JavaScript, HTML, CSS, WebRTC, etc. Dans le même temps, vous devez également maîtriser les technologies pertinentes de vision par ordinateur et d’intelligence artificielle. Il convient de noter qu'en raison de la conception du côté Web

Outils essentiels pour l'analyse boursière : découvrez les étapes pour dessiner des graphiques en bougies en PHP et JS. Des exemples de code spécifiques sont nécessaires. Avec le développement rapide d'Internet et de la technologie, le trading d'actions est devenu l'un des moyens importants pour de nombreux investisseurs. L'analyse boursière est une partie importante de la prise de décision des investisseurs, et les graphiques en bougies sont largement utilisés dans l'analyse technique. Apprendre à dessiner des graphiques en bougies à l'aide de PHP et JS fournira aux investisseurs des informations plus intuitives pour les aider à prendre de meilleures décisions. Un graphique en chandeliers est un graphique technique qui affiche les cours des actions sous forme de chandeliers. Il montre le cours de l'action

Comment utiliser PHP et JS pour créer un graphique en bougies boursières. Un graphique en bougies boursières est un graphique d'analyse technique courant sur le marché boursier. Il aide les investisseurs à comprendre les actions de manière plus intuitive en dessinant des données telles que le prix d'ouverture, le prix de clôture, le prix le plus élevé et le prix le plus élevé. prix le plus bas des fluctuations du prix des actions. Cet article vous apprendra comment créer des graphiques en bougies boursières en utilisant PHP et JS, avec des exemples de code spécifiques. 1. Préparation Avant de commencer, nous devons préparer l'environnement suivant : 1. Un serveur exécutant PHP 2. Un navigateur prenant en charge HTML5 et Canvas 3.

Comment utiliser JS et Baidu Maps pour implémenter la fonction de carte thermique de carte Introduction : Avec le développement rapide d'Internet et des appareils mobiles, les cartes sont devenues un scénario d'application courant. En tant que méthode d'affichage visuel, les cartes thermiques peuvent nous aider à comprendre la distribution des données de manière plus intuitive. Cet article explique comment utiliser JS et l'API Baidu Map pour implémenter la fonction de carte thermique de carte et fournit des exemples de code spécifiques. Travail de préparation : Avant de commencer, vous devez préparer les éléments suivants : un compte développeur Baidu, créer une application et obtenir l'AP correspondant

Présentation de la façon d'utiliser JS et Baidu Maps pour implémenter les fonctions de traitement des événements de clic sur la carte : dans le développement Web, il est souvent nécessaire d'utiliser des fonctions de carte pour afficher la localisation géographique et les informations géographiques. Le traitement des événements de clic sur la carte est une partie couramment utilisée et importante de la fonction de carte. Cet article explique comment utiliser JS et l'API Baidu Map pour implémenter la fonction de traitement des événements de clic de la carte et donne des exemples de code spécifiques. Étapes : Importez le fichier API de Baidu Map. Tout d’abord, importez le fichier de l’API Baidu Map dans le fichier HTML. Cela peut être réalisé via le code suivant :

Avec le développement rapide de la finance sur Internet, l'investissement en actions est devenu le choix de plus en plus de personnes. Dans le trading d'actions, les graphiques en bougies sont une méthode d'analyse technique couramment utilisée. Ils peuvent montrer l'évolution des cours des actions et aider les investisseurs à prendre des décisions plus précises. Cet article présentera les compétences de développement de PHP et JS, amènera les lecteurs à comprendre comment dessiner des graphiques en bougies boursières et fournira des exemples de code spécifiques. 1. Comprendre les graphiques en bougies boursières Avant de présenter comment dessiner des graphiques en bougies boursières, nous devons d'abord comprendre ce qu'est un graphique en bougies. Les graphiques en chandeliers ont été développés par les Japonais

Comment utiliser JS et Baidu Maps pour implémenter la fonction de dessin de polygones cartographiques. Dans le développement Web moderne, les applications cartographiques sont devenues l'une des fonctions courantes. Dessiner des polygones sur la carte peut nous aider à marquer des zones spécifiques que les utilisateurs peuvent visualiser et analyser. Cet article explique comment utiliser JS et l'API Baidu Map pour implémenter la fonction de dessin de polygones de carte et fournit des exemples de code spécifiques. Tout d’abord, nous devons introduire l’API Baidu Map. Vous pouvez utiliser le code suivant pour importer le JavaScript de l'API Baidu Map dans un fichier HTML
