Heim Web-Frontend js-Tutorial Auf welche Details muss bei Javascript geachtet werden?

Auf welche Details muss bei Javascript geachtet werden?

Jul 21, 2017 am 09:33 AM
javascript js Detail

1. Verwenden Sie === anstelle von ==
JavaScript verwendet zwei verschiedene Gleichheitsoperatoren: ===|!== und ==|!=, bei Vergleichsoperationen ist die Verwendung des ersteren Best Practice.
Wenn beide Operanden den gleichen Typ und Wert haben, gibt === true und !== false zurück – JavaScript: Language Essence
Bei Verwendung von == und! =, kann es zu einer Situation kommen, in der die Typen unterschiedlich sind. In diesem Fall werden die Typen der Operanden gezwungen, gleich zu sein und dann verglichen, was möglicherweise nicht das gewünschte Ergebnis ist.
2.Eval == Evil
Wenn wir es zunächst nicht kennen, gibt uns „eval“ Zugriff auf den JavaScript-Compiler (Anmerkung: Das scheint sehr mächtig zu sein). Im Wesentlichen können wir bei der Ausführung einen String als Parameter an eval übergeben.
Dies verringert nicht nur die Leistung des Skripts erheblich (Anmerkung: Der JIT-Compiler kann den Inhalt des Strings nicht vorhersagen und nicht vorkompilieren und optimieren), sondern birgt auch enorme Sicherheitsrisiken, da der auszuführende Text dies auch tut groß. Hohe Autorität, bleib weg.

3. Das Weglassen erspart möglicherweise keinen Ärger
Technisch gesehen können Sie die meisten geschweiften Klammern und Semikolons weglassen. Die meisten Browser werden den folgenden Code richtig verstehen:

if(someVariableExists) 
    x = false
Nach dem Login kopieren

Dann, wenn jemand so ist:

if(someVariableExists) 
   x = false 
   anotherFunctionCall();
Nach dem Login kopieren

jemand, den Sie vielleicht denken dass der obige Code dem Folgenden entspricht:

if(someVariableExists) { 
   x = false; 
   anotherFunctionCall(); 
}
Nach dem Login kopieren

Leider ist dieses Verständnis falsch. Die tatsächliche Bedeutung ist wie folgt:

if(someVariableExists) { 
   x = false; 
} 
anotherFunctionCall();
Nach dem Login kopieren

Möglicherweise ist Ihnen aufgefallen, dass die Einrückung oben leicht die Illusion von geschweiften Klammern vermittelt. Zu Recht ist dies eine schreckliche Praxis und sollte unbedingt vermieden werden. Es gibt nur einen Fall, in dem die geschweiften Klammern weggelassen werden können, nämlich wenn es nur eine Zeile gibt, aber das ist umstritten.

if(2 + 2 === 4) return 'nicely done';
Nach dem Login kopieren

Denken Sie voraus
Es besteht die Möglichkeit, dass Sie eines Tages weitere Anweisungen zu Ihrem if-Block hinzufügen müssen. In diesem Fall müssen Sie diesen Code neu schreiben. Fazit: Auslassungen sind ein Minenfeld.

4. Platzieren Sie das Skript am Ende der Seite
Denken Sie daran – das Hauptziel besteht darin, die Seite so schnell wie möglich zu präsentieren Blockierung: Der Browser kann den folgenden Inhalt nicht weiter rendern, bis er geladen und ausgeführt wird. Daher müssen Benutzer länger warten.
Wenn Ihr js nur zur Verstärkung des Effekts verwendet wird – zum Beispiel ein Button-Click-Ereignis – platzieren Sie das Skript sofort vor dem Ende des Textkörpers. Dies ist definitiv die beste Vorgehensweise.

5. Vermeiden Sie die Deklaration von Variablen innerhalb einer For-Anweisung
Wenn Sie eine lange for-Anweisung ausführen, halten Sie den Anweisungsblock so prägnant wie möglich, zum Beispiel:
Ups:

for(var i = 0; i < someArray.length; i++) { 
   var container = document.getElementById(&#39;container&#39;); 
   container.innerHtml += &#39;my number: &#39; + i; 
   console.log(i); 
}
Nach dem Login kopieren

Beachten Sie, dass jede Schleife die Länge des Arrays berechnen muss und jedes Mal den Dom durchlaufen muss, um das „Container“-Element abzufragen – die Effizienz ist sehr gering!
Empfehlungen:

var container = document.getElementById(&#39;container&#39;); 
for(var i = 0, len = someArray.length; i < len;  i++) { 
   container.innerHtml += &#39;my number: &#39; + i; 
   console.log(i); 
}
Nach dem Login kopieren


6. Der beste Weg, eine Zeichenfolge zu erstellen
Wenn Sie über ein Array iterieren müssen oder Objekt, denken Sie nicht immer an die „für“-Anweisung, seien Sie kreativ, Sie können immer einen besseren Weg finden, zum Beispiel wie den folgenden.

var arr = [&#39;item 1&#39;, &#39;item 2&#39;, &#39;item 3&#39;, ...]; 
var list = &#39;<ul><li>' + arr.join('</li><li>') + '</li></ul>';
Nach dem Login kopieren

Ich bin nicht dein Gott, aber bitte glaub mir (wenn du mir nicht glaubst, teste es selbst) – das ist bei weitem die schnellste Methode!
Die Verwendung von nativem Code (z. B. join()) ist unabhängig davon, was das System intern tut, normalerweise viel schneller als die Verwendung von nicht nativem Code.

7. Reduzieren Sie globale Variablen
Solange mehrere globale Variablen unter einem Namensraum organisiert sind, wird die Interaktion mit anderen Anwendungen, Komponenten oder Klassen erheblich reduziert. “ – Douglas Crockford

var name = 'Jeffrey'; 
var lastName = 'Way'; 
function doSomething() {...} 
console.log(name); // Jeffrey -- 或 window.name// 更好的做法var DudeNameSpace = { 
   name : 'Jeffrey', 
   lastName : 'Way', 
   doSomething : function() {...} 
} 
console.log(DudeNameSpace.name); // Jeffrey
Nach dem Login kopieren

Hinweis: Dies wird einfach „DudeNameSpace“ genannt. Ein vernünftigerer Name.

8. Kommentare zum Code hinzufügen
Es scheint unnötig, aber bitte glauben Sie mir, versuchen Sie, Ihrem Code vernünftigere Kommentare hinzuzufügen. Wenn Sie einige Monate später auf Ihr Projekt zurückblicken, erinnern Sie sich möglicherweise nicht mehr an Ihre ursprünglichen Gedanken. Oder was ist, wenn einer Ihrer Kollegen Änderungen an Ihrem Code vornehmen muss? Alles in allem ist das Hinzufügen von Kommentaren zu Ihrem Code ein wichtiger Teil.

// 循环数组,输出每项名字(译者注:这样的注释似乎有点多余吧)for(var i = 0, len = array.length; i < len; i++) {
   console.log(array[i]); 
}
Nach dem Login kopieren


9. Nutzen Sie die progressive Verbesserung
Sorgen Sie für eine reibungslose Degradierung, wenn Javascript deaktiviert ist. Wir sind immer versucht zu denken: „Die meisten meiner Besucher haben bereits JavaScript aktiviert, also muss ich mir keine Sorgen machen.“ Dies ist jedoch ein großes Missverständnis.
Haben Sie sich jemals einen Moment Zeit genommen, um zu sehen, wie Ihre schöne Seite aussieht, wenn Javascript deaktiviert ist? (Dies ist einfach, indem Sie das Web Developer-Tool herunterladen (Anmerkung des Übersetzers: Chrome-Benutzer laden es im App Store herunter, IE-Benutzer stellen es in den Internetoptionen ein)), aber dies kann Ihre Website beschädigen. Als Faustregel gilt: Entwerfen Sie Ihre Website unter der Annahme, dass JavaScript deaktiviert ist, und verbessern Sie dann auf dieser Grundlage schrittweise Ihre Website.

10. Übergeben Sie keine String-Parameter an „setInterval“ oder „setTimeout“
Beachten Sie den folgenden Code:

setInterval( 
"document.getElementById(&#39;container&#39;).innerHTML += &#39;My new number: &#39; + i", 3000 );
Nach dem Login kopieren

不仅效率低下,而且这种做法和"eval"如出一辙。从不给setInterval和setTimeout传递字符串作为参数,而是像下面这样传递函数名。

setInterval(someFunction, 3000);
Nach dem Login kopieren

11.不要使用"with"语句
乍一看,"with"语句看起来像一个聪明的主意。基本理念是,它可以为访问深度嵌套对象提供缩写,例如……

with (being.person.man.bodyparts) { 
   arms = true; 
   legs = true; 
}
Nach dem Login kopieren

而不是像下面这样:

being.person.man.bodyparts.arms = true; 
being.person.man.bodyparts.legs= true;
Nach dem Login kopieren

不幸的是,经过测试后,发现这时“设置新成员时表现得非常糟糕。作为代替,您应该使用变量,像下面这样。

var o = being.person.man.bodyparts; 
o.arms = true; 
o.legs = true;
Nach dem Login kopieren

12.使用{}代替 new Ojbect()
在JavaScript中创建对象的方法有多种。可能是传统的方法是使用"new"加构造函数,像下面这样:

ar o = new Object(); 
o.name = &#39;Jeffrey&#39;; 
o.lastName = &#39;Way&#39;; 
o.someFunction = function() { 
   console.log(this.name); 
}
Nach dem Login kopieren

然而,这种方法的受到的诟病不及实际上多。作为代替,我建议你使用更健壮的对象字面量方法。
更好的做法

var o = { 
   name: &#39;Jeffrey&#39;, 
   lastName = &#39;Way&#39;, 
   someFunction : function() { 
      console.log(this.name); 
   } 
};
Nach dem Login kopieren

注意,果你只是想创建一个空对象,{}更好。
13.使用[]代替 new Array()
这同样适用于创建一个新的数组。
例如:

var a = new Array(); 
a[0] = "Joe"; 
a[1] = &#39;Plumber&#39;;// 更好的做法:var a = [&#39;Joe&#39;,&#39;Plumber&#39;];
Nach dem Login kopieren

“javascript程序中常见的错误是在需要对象的时候使用数组,而需要数组的时候却使用对象。规则很简单:当属性名是连续的整数时,你应该使用数组。否则,请使用对象”——Douglas Crockford
14.定义多个变量时,省略var关键字,用逗号代替

var someItem = &#39;some string&#39;; 
var anotherItem = &#39;another string&#39;; 
var oneMoreItem = &#39;one more string&#39;;// 更好的做法var someItem = &#39;some string&#39;, 
    anotherItem = &#39;another string&#39;, 
    oneMoreItem = &#39;one more string&#39;;
Nach dem Login kopieren

应而不言自明。我怀疑这里真的有所提速,但它能是你的代码更清晰。
15.使用Firebug的"timer"功能优化你的代码
在寻找一个快速、简单的方法来确定操作需要多长时间吗?使用Firebug的“timer”功能来记录结果。

function TimeTracker(){ 
 console.time("MyTimer"); 
 for(x=5000; x > 0; x--){} 
 console.timeEnd("MyTimer"); 
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonAuf welche Details muss bei Javascript geachtet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So implementieren Sie ein Online-Spracherkennungssystem mit WebSocket und JavaScript So implementieren Sie ein Online-Spracherkennungssystem mit WebSocket und JavaScript Dec 17, 2023 pm 02:54 PM

So implementieren Sie mit WebSocket und JavaScript ein Online-Spracherkennungssystem. Einführung: Mit der kontinuierlichen Weiterentwicklung der Technologie ist die Spracherkennungstechnologie zu einem wichtigen Bestandteil des Bereichs der künstlichen Intelligenz geworden. Das auf WebSocket und JavaScript basierende Online-Spracherkennungssystem zeichnet sich durch geringe Latenz, Echtzeit und plattformübergreifende Eigenschaften aus und hat sich zu einer weit verbreiteten Lösung entwickelt. In diesem Artikel wird erläutert, wie Sie mit WebSocket und JavaScript ein Online-Spracherkennungssystem implementieren.

Empfohlen: Ausgezeichnetes JS-Open-Source-Projekt zur Gesichtserkennung und -erkennung Empfohlen: Ausgezeichnetes JS-Open-Source-Projekt zur Gesichtserkennung und -erkennung Apr 03, 2024 am 11:55 AM

Die Technologie zur Gesichtserkennung und -erkennung ist bereits eine relativ ausgereifte und weit verbreitete Technologie. Derzeit ist JS die am weitesten verbreitete Internetanwendungssprache. Die Implementierung der Gesichtserkennung und -erkennung im Web-Frontend hat im Vergleich zur Back-End-Gesichtserkennung Vor- und Nachteile. Zu den Vorteilen gehören die Reduzierung der Netzwerkinteraktion und die Echtzeiterkennung, was die Wartezeit des Benutzers erheblich verkürzt und das Benutzererlebnis verbessert. Die Nachteile sind: Es ist durch die Größe des Modells begrenzt und auch die Genauigkeit ist begrenzt. Wie implementiert man mit js die Gesichtserkennung im Web? Um die Gesichtserkennung im Web zu implementieren, müssen Sie mit verwandten Programmiersprachen und -technologien wie JavaScript, HTML, CSS, WebRTC usw. vertraut sein. Gleichzeitig müssen Sie auch relevante Technologien für Computer Vision und künstliche Intelligenz beherrschen. Dies ist aufgrund des Designs der Webseite erwähnenswert

WebSocket und JavaScript: Schlüsseltechnologien zur Implementierung von Echtzeitüberwachungssystemen WebSocket und JavaScript: Schlüsseltechnologien zur Implementierung von Echtzeitüberwachungssystemen Dec 17, 2023 pm 05:30 PM

WebSocket und JavaScript: Schlüsseltechnologien zur Realisierung von Echtzeit-Überwachungssystemen Einführung: Mit der rasanten Entwicklung der Internet-Technologie wurden Echtzeit-Überwachungssysteme in verschiedenen Bereichen weit verbreitet eingesetzt. Eine der Schlüsseltechnologien zur Erzielung einer Echtzeitüberwachung ist die Kombination von WebSocket und JavaScript. In diesem Artikel wird die Anwendung von WebSocket und JavaScript in Echtzeitüberwachungssystemen vorgestellt, Codebeispiele gegeben und deren Implementierungsprinzipien ausführlich erläutert. 1. WebSocket-Technologie

Wesentliche Tools für die Aktienanalyse: Lernen Sie die Schritte zum Zeichnen von Kerzendiagrammen mit PHP und JS Wesentliche Tools für die Aktienanalyse: Lernen Sie die Schritte zum Zeichnen von Kerzendiagrammen mit PHP und JS Dec 17, 2023 pm 06:55 PM

Wesentliche Tools für die Aktienanalyse: Lernen Sie die Schritte zum Zeichnen von Kerzendiagrammen in PHP und JS. Mit der rasanten Entwicklung des Internets und der Technologie ist der Aktienhandel für viele Anleger zu einer wichtigen Möglichkeit geworden. Die Aktienanalyse ist ein wichtiger Teil der Anlegerentscheidung, und Kerzendiagramme werden häufig in der technischen Analyse verwendet. Wenn Sie lernen, wie man Kerzendiagramme mit PHP und JS zeichnet, erhalten Anleger intuitivere Informationen, die ihnen helfen, bessere Entscheidungen zu treffen. Ein Candlestick-Chart ist ein technischer Chart, der Aktienkurse in Form von Candlesticks anzeigt. Es zeigt den Aktienkurs

Verwendung von JavaScript und WebSocket zur Implementierung eines Echtzeit-Online-Bestellsystems Verwendung von JavaScript und WebSocket zur Implementierung eines Echtzeit-Online-Bestellsystems Dec 17, 2023 pm 12:09 PM

Einführung in die Verwendung von JavaScript und WebSocket zur Implementierung eines Online-Bestellsystems in Echtzeit: Mit der Popularität des Internets und dem Fortschritt der Technologie haben immer mehr Restaurants damit begonnen, Online-Bestelldienste anzubieten. Um ein Echtzeit-Online-Bestellsystem zu implementieren, können wir JavaScript und WebSocket-Technologie verwenden. WebSocket ist ein Vollduplex-Kommunikationsprotokoll, das auf dem TCP-Protokoll basiert und eine bidirektionale Kommunikation zwischen Client und Server in Echtzeit realisieren kann. Im Echtzeit-Online-Bestellsystem, wenn der Benutzer Gerichte auswählt und eine Bestellung aufgibt

JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Wettervorhersagesystems JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Wettervorhersagesystems Dec 17, 2023 pm 05:13 PM

JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Wettervorhersagesystems Einführung: Heutzutage ist die Genauigkeit von Wettervorhersagen für das tägliche Leben und die Entscheidungsfindung von großer Bedeutung. Mit der Weiterentwicklung der Technologie können wir genauere und zuverlässigere Wettervorhersagen liefern, indem wir Wetterdaten in Echtzeit erhalten. In diesem Artikel erfahren Sie, wie Sie mit JavaScript und WebSocket-Technologie ein effizientes Echtzeit-Wettervorhersagesystem aufbauen. In diesem Artikel wird der Implementierungsprozess anhand spezifischer Codebeispiele demonstriert. Wir

PHP- und JS-Entwicklungstipps: Beherrschen Sie die Methode zum Zeichnen von Aktienkerzendiagrammen PHP- und JS-Entwicklungstipps: Beherrschen Sie die Methode zum Zeichnen von Aktienkerzendiagrammen Dec 18, 2023 pm 03:39 PM

Mit der rasanten Entwicklung der Internetfinanzierung sind Aktieninvestitionen für immer mehr Menschen zur Wahl geworden. Im Aktienhandel sind Kerzendiagramme eine häufig verwendete Methode der technischen Analyse. Sie können den sich ändernden Trend der Aktienkurse anzeigen und Anlegern helfen, genauere Entscheidungen zu treffen. In diesem Artikel werden die Entwicklungskompetenzen von PHP und JS vorgestellt, der Leser wird zum Verständnis des Zeichnens von Aktienkerzendiagrammen geführt und es werden spezifische Codebeispiele bereitgestellt. 1. Aktien-Kerzendiagramme verstehen Bevor wir uns mit dem Zeichnen von Aktien-Kerzendiagrammen befassen, müssen wir zunächst verstehen, was ein Kerzendiagramm ist. Candlestick-Charts wurden von den Japanern entwickelt

Einfaches JavaScript-Tutorial: So erhalten Sie den HTTP-Statuscode Einfaches JavaScript-Tutorial: So erhalten Sie den HTTP-Statuscode Jan 05, 2024 pm 06:08 PM

JavaScript-Tutorial: So erhalten Sie HTTP-Statuscode. Es sind spezifische Codebeispiele erforderlich. Vorwort: Bei der Webentwicklung ist häufig die Dateninteraktion mit dem Server erforderlich. Bei der Kommunikation mit dem Server müssen wir häufig den zurückgegebenen HTTP-Statuscode abrufen, um festzustellen, ob der Vorgang erfolgreich ist, und die entsprechende Verarbeitung basierend auf verschiedenen Statuscodes durchführen. In diesem Artikel erfahren Sie, wie Sie mit JavaScript HTTP-Statuscodes abrufen und einige praktische Codebeispiele bereitstellen. Verwenden von XMLHttpRequest

See all articles