Le script doit être placé après le code de l'élément de page
Peu importe si le code JavaScript actuel est intégré ou dans un fichier de lien externe, le téléchargement et le rendu du La page doit s'arrêter et attendre la fin de l'exécution du script. Plus le processus d'exécution de JavaScript est long, plus le navigateur attend pour répondre aux entrées de l'utilisateur. La raison pour laquelle les navigateurs bloquent lors du téléchargement et de l'exécution de scripts est que le script peut modifier l'espace de noms de la page ou JavaScript, ce qui affectera le contenu des pages suivantes.
Éviter la recherche globale
function search() { //当我要使用当前页面地址和主机域名 alert(window.location.href + window.location.host); } //最好的方式是如下这样 先用一个简单变量保存起来 function search() { var location = window.location; alert(location.href + location.host); }
Conversion de type
般最好用”" + 1来将数字转换成字符串,虽然看起来比较丑一点,但事实上这个效率是最高的,性能上来说:
("" +) > String() > .toString() > new String() "
" var myVar = "3.14159", str = "" + myVar, // to string num=+myVar, // to number i_int = ~ ~myVar, // to integer f_float = 1 * myVar, // to float b_bool = !!myVar, /* to boolean - any string with length and any number except 0 are true */ array = [myVar]; // to array "
Déclarations de types multiples
en JavaScript Tous les variables in peuvent être déclarées à l'aide d'une seule instruction var, qui est un groupe d'instructions permettant de réduire le temps d'exécution de l'ensemble du script. Tout comme le code ci-dessus, le format de code ci-dessus est également assez standardisé, ce qui le rend clair en un coup d'œil. 🎜 >
Soyez prudent avec les fermetures
var frag = document.createDocumentFragment(); for (var i = 0; i < 1000; i++) { var el = document.createElement('p'); el.innerHTML = i; frag.appendChild(el); } document.body.appendChild(frag); //替换为: var frag = document.createDocumentFragment(); var pEl = document.getElementsByTagName('p')[0]; for (var i = 0; i < 1000; i++) { var el = pEl.cloneNode(false); el.innerHTML = i; frag.appendChild(el); } document.body.appendChild(frag);
Combinez les conditions de contrôle et les variables de contrôle lors de la boucle
document.getElementById('foo').onclick = function(ev) { };
Amélioration
for ( var x = 0; x < 10; x++ ) {};
Éviter la comparaison avec null
var x = 9; do { } while( x-- );
Raccourcir la détection négative
var aTest = new Array(); //替换为 var aTest = []; var aTest = new Object; //替换为 var aTest = {}; var reg = new RegExp(); //替换为 var reg = /../; //如果要创建具有一些特性的一般对象,也可以使用字面量,如下: var oFruit = new O; oFruit.color = "red"; oFruit.name = "apple"; //前面的代码可用对象字面量来改写成这样: var oFruit = { color: "red", name: "apple" };
Lâcher l'objet javascript
随着实例化对象数量的增加,内存消耗会越来越大。所以应当及时释放对对象的引用,让GC能够回收这些内存控件。 对象:obj = null 对象属性:delete obj.myproperty 数组item:使用数组的splice方法释放数组中不用的item
巧用||和&&布尔运算符
function eventHandler(e) { if (!e) e = window.event; } //可以替换为: function eventHandler(e) { e = e || window.event; } if (myobj) { doSomething(myobj); } //可以替换为: myobj && doSomething(myobj);
switch语句相对if较快
每条语句末尾须加分号
相关推荐:
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!