Résumé de l'amélioration de l'efficacité de l'exécution de JS
Cette fois, je vais vous apporter un résumé de l'amélioration de l'efficacité de l'exécution de JS et quelles sont les précautions pour améliorer l'efficacité de l'exécution de JS. Voici des cas pratiques, jetons un coup d'oeil.
1. Utilisez des symboles logiques && ou || pour faire des jugements conditionnels
var foo = 10; foo == 10 && doSomething(); // 如果 foo == 10 则执行 doSomething(); foo == 5 || doSomething(); // 如果 foo != 5 则执行doSomething();
"||" Valeur par défaut du paramètre de fonction
Function doSomething(arg1){ Arg1 = arg1 || 10; // 如果 arg1为设置那么 Arg1=10 }
2 Utilisez la méthode map() pour parcourir le tableau .
var squares = [1,2,3,4].map(function (val) { return val * val; }); // 运行结果为 [1, 4, 9, 16]
3. Arrondi aux décimales
var num =2.443242342; num = num.toFixed(4); // 保留四位小数位 2.4432
4.
0.1 + 0.2 === 0.3 // is false 9007199254740992 + 1 // = 9007199254740992 9007199254740992 + 2 // = 9007199254740994
5. Utilisez la boucle for-in pour vérifier les propriétés de l'objet traversé
Le code suivant sert principalement à éviter de traverser les propriétés de l'objet.for (var name in object) { if (object.hasOwnProperty(name)) { // 执行代码 } }
6. Opérateur virgule
var a = 0; var b = ( a++, 99 ); console.log(a); // a 为 1 console.log(b); // b 为 99
7. Lors de l'utilisation des sélecteurs jQuery, les développeurs peuvent mettre en cache les éléments DOM
var navright = document.querySelector('#right'); var navleft = document.querySelector('#left'); var navup = document.querySelector('#up'); var navdown = document.querySelector('#down');
8 Transmettez les paramètres à isFinite() Validez avant
isFinite(0/0) ; // false isFinite("foo"); // false isFinite("10"); // true isFinite(10); // true isFinite(undifined); // false isFinite(); // false isFinite(null); // true !!!
Assurez-vous que les paramètres transmis à la méthode indexOf() ne sont pas négatif.
var numbersArray = [1,2,3,4,5]; var from = numbersArray.indexOf("foo") ; // from is equal to -1 numbersArray.splice(from,2); // will return [5]
var person = {name :'Saad', age : 26, department : {ID : 15, name : "R&D"} }; var stringFromPerson = JSON.stringify(person); /* stringFromPerson is equal to "{"name":"Saad","age":26,"department":{"ID":15,"name":"R&D"}}" */ var personFromString = JSON.parse(stringFromPerson); /* personFromString is equal to person object */
eval() et le constructeur de fonction sont appelés moteurs de script à chaque fois qu'ils sont exécutés, le code source doit être converti en code exécutable.
var func1 = new Function(functionCode); var func2 = eval(functionCode);
Si vous utilisez with() pour insérer des variables dans la zone globale, puis, une fois qu'une variable porte le même nom, il est facile de la confondre et de la remplacer.
13. Évitez d'utiliser une boucle for-in dans un tableauutilisez-la plutôt comme ceci :
comme ceci serait mieux :
var sum = 0; for (var i in arrayNumbers) { sum += arrayNumbers[i]; }
Parce que i et len sont les premières instructions de la boucle, elles seront exécutées une fois pour chaque instanciation, donc l'exécution sera plus rapide que la suivante :
var sum = 0; for (var i = 0, len = arrayNumbers.length; i < len; i++) { sum += arrayNumbers[i]; }
Pourquoi ? La longueur du tableau, arrayynNumbers, est recalculée à chaque itération de boucle.
for (var i = 0; i < arrayNumbers.length; i++)
Si vous transmettez des chaînes à ces deux méthodes, alors la chaîne sera recalculée comme eval, ce qui sera plus lent Au lieu de l'utiliser comme ceci :
Au lieu de cela, elle devrait être utilisée comme ceci :
setInterval('doSomethingPeriodically()', 1000); setTimeOut('doSomethingAfterFiveSeconds()', 5000);
setInterval(doSomethingPeriodically, 1000); setTimeOut(doSomethingAfterFiveSeconds, 5000);
S'il y a plus de 2 cas, alors l'utilisation de switch/case sera beaucoup plus rapide, et le code semble plus élégant.
16. Lorsque vous rencontrez une plage numérique, vous pouvez utiliser switch/casnefunction getCategory(age) { var category = ""; switch (true) { case isNaN(age): category = "not an age"; break; case (age >= 50): category = "Old"; break; case (age <= 20): category = "Baby"; break; default: category = "Young"; break; }; return category; } getCategory(5); // 返回 "Baby"
Créer un objet dont les propriétés sont un objet donné Vous pouvez écrire une fonction comme celle-ci pour créer un objet dont les propriétés sont un objet donné, comme ceci :
function clone(object) { function OneShotConstructor(){}; OneShotConstructor.prototype= object; return new OneShotConstructor(); } clone(Array).prototype ; // []
function escapeHTML(text) { var replacements= {"<": "<", ">": ">","&": "&", "\"": """}; return text.replace(/[<>&"]/g, function(character) { return replacements[character]; }); }
en boucle try-catch-finally在当前范围里运行时会创建一个新的变量,在执行catch时,捕获异常对象会赋值给变量。 应该这样使用: 20.给XMLHttpRequests设置timeouts 如果一个XHR需要花费太长时间,你可以终止链接(例如网络问题),通过给XHR使用setTimeout()解决。 此外,通常你应该完全避免同步Ajax调用。 21.处理WebSocket超时 一般来说,当创建一个WebSocket链接时,服务器可能在闲置30秒后链接超时,在闲置一段时间后,防火墙也可能会链接超时。 为了解决这种超时问题,你可以定期地向服务器发送空信息,在代码里添加两个函数:一个函数用来保持链接一直是活的,另一个用来取消链接是活的,使用这种方法,你将控制超时问题。 添加一个timeID…… keepAlive()方法应该添加在WebSocket链接方法onOpen()的末端,cancelKeepAlive()方法放在onClose()方法下面。 22.记住,最原始的操作要比函数调用快 对于简单的任务,最好使用基本操作方式来实现,而不是使用函数调用实现。 基本操作方式: 23.编码时注意代码的美观、可读 JavaScript是一门非常好的语言,尤其对于前端工程师来说,JavaScript执行效率也非常重要。 我们在编写JavaScript程序时注意一些小细节,掌握一些常用的实用小技巧往往会使程序更简捷,程序执行效率更高 相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章! 推荐阅读:
不要这样使用:var object = ['foo', 'bar'], i;
for (i = 0, len = object.length; i <len; i++) {
try {
// 执行代码,如果出错将被捕获
}
catch (e) {
// 获取错误,并执行代码
}
}
var object = ['foo', 'bar'], i;
try {
for (i = 0, len = object.length; i <len; i++) {
// 执行代码,如果出错将被捕获
}
}
catch (e) {
// 获取错误,并执行代码
}
var xhr = new XMLHttpRequest ();
xhr.onreadystatechange = function () {
if (this.readyState == 4) {
clearTimeout(timeout);
// 执行代码
}
}
var timeout = setTimeout( function () {
xhr.abort(); // call error callback
}, 60*1000 /* 设置1分钟后执行*/ );
xhr.open('GET', url, true);
xhr.send();
var timerID = 0;
function keepAlive() {
var timeout = 15000;
if (webSocket.readyState == webSocket.OPEN) {
webSocket.send('');
}
timerId = setTimeout(keepAlive, timeout);
}
function cancelKeepAlive() {
if (timerId) {
cancelTimeout(timerId);
}
}
例如var min = Math.min(a,b);
A.push(v);
var min = a < b ? a b;
A[A.length] = v;
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)

PyCharm est un puissant environnement de développement intégré (IDE) Python largement utilisé par les développeurs Python pour l'écriture de code, le débogage et la gestion de projets. Dans le processus de développement réel, la plupart des développeurs seront confrontés à différents problèmes, tels que comment améliorer l'efficacité du développement, comment collaborer avec les membres de l'équipe sur le développement, etc. Cet article présentera un guide pratique du développement à distance de PyCharm pour aider les développeurs à mieux utiliser PyCharm pour le développement à distance et à améliorer l'efficacité du travail. 1. Travail de préparation dans PyCh

Résumé de la fonction system() sous Linux Dans le système Linux, la fonction system() est une fonction très couramment utilisée, qui permet d'exécuter des commandes en ligne de commande. Cet article présentera la fonction system() en détail et fournira quelques exemples de code spécifiques. 1. Utilisation de base de la fonction system(). La déclaration de la fonction system() est la suivante : intsystem(constchar*command) où le paramètre de commande est un caractère.

StableDiffusion est un modèle d'apprentissage profond open source. Sa fonction principale est de générer des images de haute qualité via des descriptions textuelles et prend en charge des fonctions telles que la génération de graphiques, la fusion de modèles et la formation de modèles. L'interface de fonctionnement du modèle est visible dans la figure ci-dessous. Comment générer une image. Ce qui suit est une introduction au processus de création d'une image d'un cerf buvant de l'eau. Lors de la génération d'une image, elle est divisée en mots d'invite et en mots d'invite négatifs. Lors de la saisie des mots d'invite, vous devez la décrire. clairement et essayez de décrire la scène, l’objet, le style et la couleur que vous souhaitez en détail. Par exemple, au lieu de simplement dire « le cerf boit de l'eau », il est écrit « un ruisseau, à côté d'arbres denses, et il y a des cerfs qui boivent de l'eau à côté du ruisseau ». Les mots d'invite négatifs vont dans la direction opposée. aucun bâtiment, aucune personne, aucun pont, aucune clôture et une description trop vague peuvent conduire à des résultats inexacts.

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

Titre : Python rend la vie plus pratique : maîtrisez ce langage pour améliorer l'efficacité du travail et la qualité de vie. En tant que langage de programmation puissant et facile à apprendre, Python devient de plus en plus populaire à l'ère numérique d'aujourd'hui. Non seulement pour écrire des programmes et effectuer des analyses de données, Python peut également jouer un rôle important dans notre vie quotidienne. La maîtrise de cette langue peut non seulement améliorer l'efficacité du travail, mais également améliorer la qualité de vie. Cet article utilisera des exemples de code spécifiques pour démontrer la large application de Python dans la vie et aider les lecteurs

Introduction à la méthode d'obtention du code d'état HTTP en JavaScript : Dans le développement front-end, nous devons souvent gérer l'interaction avec l'interface back-end, et le code d'état HTTP en est une partie très importante. Comprendre et obtenir les codes d'état HTTP nous aide à mieux gérer les données renvoyées par l'interface. Cet article explique comment utiliser JavaScript pour obtenir des codes d'état HTTP et fournit des exemples de code spécifiques. 1. Qu'est-ce que le code d'état HTTP ? Le code d'état HTTP signifie que lorsque le navigateur lance une requête au serveur, le service

Le rôle du masque de sous-réseau et son impact sur l'efficacité de la communication réseau Introduction : Avec la popularité d'Internet, la communication réseau est devenue un élément indispensable de la société moderne. Dans le même temps, l'efficacité de la communication en réseau est également devenue l'un des centres d'attention des gens. Dans le processus de création et de gestion d'un réseau, le masque de sous-réseau est une option de configuration importante et basique, qui joue un rôle clé dans la communication réseau. Cet article présentera le rôle du masque de sous-réseau et son impact sur l'efficacité des communications réseau. 1. Définition et fonction du masque de sous-réseau Masque de sous-réseau (subnetmask)

Pour maîtriser le rôle de sessionStorage et améliorer l'efficacité du développement front-end, des exemples de code spécifiques sont nécessaires. Avec le développement rapide d'Internet, le domaine du développement front-end évolue également chaque jour. Lors du développement front-end, nous devons souvent traiter de grandes quantités de données et les stocker dans le navigateur pour une utilisation ultérieure. SessionStorage est un outil de développement frontal très important qui peut nous fournir des solutions de stockage local temporaire et améliorer l'efficacité du développement. Cet article présentera le rôle de sessionStorage,
