Heim Web-Frontend js-Tutorial Detaillierte Erläuterung alternativer Schreibmethoden von JavaScript_Javascript-Kenntnissen

Detaillierte Erläuterung alternativer Schreibmethoden von JavaScript_Javascript-Kenntnissen

May 16, 2016 pm 03:06 PM

JavaScript ist eine Skriptsprache für das Internet!

JavaScript wird von Millionen von Webseiten verwendet, um das Design zu verbessern, Formulare zu validieren, Browser zu erkennen, Cookies zu erstellen und mehr.

JavaScript ist die beliebteste Skriptsprache im Internet.

JavaScript ist einfach zu verwenden! Du wirst es lieben!

JavaScript ist eine interpretierte Skriptsprache mit flexibler Syntax, die es verschiedenen Personen ermöglicht, dieselbe Funktion auf viele verschiedene Arten zu schreiben. Wie organisiere ich JavaScript-Code, damit andere auf einen Blick erkennen können, dass Sie nicht einfach sind? Freuen Sie sich wirklich darauf, dass andere nach dem Lesen Ihres Codes ausrufen: „Damit Sie es immer noch so schreiben können“?

N Möglichkeiten, anonyme Funktionen zu schreiben

Die anonyme Funktion von JS ist eine selbstausführende Funktion ohne Angabe eines Funktionsnamens. Das Format ist wie folgt:

(function(){})();
Nach dem Login kopieren

Tatsächlich fügen wir in Projekten oft „;“ voran:

;function(){}();
Nach dem Login kopieren

Aufgrund der Syntax von JS kann das Semikolon weggelassen werden, dieser Mechanismus kann jedoch auch zu unerwarteten Fehlern führen. Um Syntaxfehler zu vermeiden, die durch das Zusammenführen und Komprimieren des Codes in einer Datei entstehen, nachdem er online geschaltet wurde, kann das Hinzufügen von „;“ unbekannte Fehler vermeiden.

Aber manchmal sehen wir anonyme Funktionen, die in den Bibliotheken oder Plug-Ins anderer Leute so geschrieben sind:

+function(){}();
Nach dem Login kopieren

„+“ ist hier der Operator, und der Operator hat eine extrem hohe Priorität, sodass die Funktionsdeklaration rechts plus die Klammern (eigentlich die Art und Weise, wie die Funktion geschrieben wird) direkt ausgeführt werden. Tatsächlich kann ihm nicht nur ein „+“-Zeichen vorangestellt werden, sondern es können auch Operatoren wie „-“, „!“, „~“ und „++“ verwendet werden. Dies ist nur eine erweiterte Einführung. Die spezifische Schreibmethode hängt von den einheitlichen Standards des Teams ab.

Math.ceil() und Math.floor-Rundung aufgeben

Vielleicht haben Sie diese beiden Symbole ~~ und |0 in anderen Codes gesehen, schauen Sie sich einfach die laufenden Ergebnisse an:

>> var a1 = 1.23
>> ~~a1
1
>> var a2 = 2.345
>> a2|0
2
>> var a3 = -3.45
>> ~~a3
-3
>> var a4 = -4.5
>> a4|0
-4
Nach dem Login kopieren

Bitte beachten Sie, dass diese Schreibweise nicht originell ist, sondern lediglich zitiert wird, um diese alternative Schreibweise zu analysieren und zu erklären. Kurz erklärt: ~ ist ein bitweiser Negationsoperator, der eine Gleitkommazahl in eine Ganzzahl umwandeln kann, indem alle Ziffern nach dem Dezimalpunkt verworfen werden. Positive ganze Zahlen können in vorzeichenlose Hexadezimalwerte umgewandelt werden. Negieren Sie es dann erneut (~~), um die ursprüngliche Ganzzahl zu erhalten. Wenn Sie so eigensinnig sind und die Methode nicht anpassen möchten, denken Sie dann, dass es sich um eine Optimierung handelt?

Hinweis: Wenn Sie strikte Rundungsoperationen durchführen müssen, sollten Sie diese Methode mit Vorsicht verwenden, dann müssen Sie trotzdem die Math-Funktion verwenden.

wenn und sonst sind nicht die einzigen

Die bedingte Beurteilung mit if-else ist eine sehr klare Logik, sieht jedoch nicht sehr prägnant aus, wenn die verarbeitete Datenmenge nicht groß ist:

if (a===1) { //此处强烈建议用严格等于符号“===”,不会进行类型转换
a=2
} else if (a===3) {
a=4
} else {
a=5
}
Nach dem Login kopieren

Schauen Sie sich die Verwendung von || und && an, um den Code zu verschlanken:

((a===1)&&(true,a=2))||((a===3)&&(true,a=4))||(a=5)
Nach dem Login kopieren

Erledigen Sie es in nur einem Schritt und verlieren Sie erfolgreich Gewicht. ||. und &&, das Prinzip ist natürlich nicht leicht zu verstehen. Sie können es weiterhin durch den ternären Operator ersetzen

(a===1 )? a=2:( (a===3) ? (a=4) : (a=5) )
Nach dem Login kopieren
Diese Schreibweise scheint eine vereinfachte Struktur zu haben, aber es wird für andere etwas schwierig sein, Ihren Code zu lesen.

Verwenden Sie toString, um die lästige String-Splicing-DOM-Struktur zu ersetzen

Wenn Sie eine DOM-Struktur dynamisch generieren möchten, implementieren wir diese im Allgemeinen wie folgt:

var template = "<div>" 
+ "<h2>{title}</h2>"
+ "<div class='content' yAttr=''>{content}</div>"
+ "</div>"
Nach dem Login kopieren
Wenn Sie verschiedene Attribute und Parameter hinzufügen, werden die großen und kleinen Anführungszeichen verwechselt und es ist einfach, Fehler zu melden. ES6 bietet jedoch eine Vorlagenzeichenfolge, die uns bei der Lösung dieses Problems hilft. Sie können es wie folgt schreiben:

var template = <div> 
<h2>{title}</h2> 
<div class='content' yAttr=''>{content}</div> 
</div>
Nach dem Login kopieren
Aber das Problem ist, dass ES6 noch nicht offiziell angekommen ist ... Keine Angst, function.toString kann die Peinlichkeit lösen, wenn wir im Dunkeln tappen:

var rComment = /\/\*([\s\S]*&#63;)\*\//;
// multiply string 
function ms(fn){ 
return fn.toString().match(rComment)[1]
}; 
ms(function(){/* 
<div> 
<h2>{title}</h2> 
<div class='content' yAttr=''>{content}</div> 
</div> */
})
Nach dem Login kopieren
Die Ausgabe hier ist die gleiche wie bei der vorherigen String-Ausgabe. Front-End-Programmierer müssen nur auf ihre eigene DOM-Struktur achten.

AMD-Modulunterstützung hinzufügen, Eingabeaufforderungscode-B-Feld

Deklarieren Sie die AMD-Modulspezifikation (Asynchronous Module Definition) für den von Ihnen geschriebenen Code, damit andere Ihr Modul direkt über die AMD-Spezifikation laden können. Wenn andere Ihr Modul nicht über die Spezifikation laden, können Sie auch ein reguläres Global zurückgeben Objekt anmutig. Werfen wir einen Blick darauf, wie jQueryUI geschrieben ist:

(function( factory ) { 
if ( typeof define === "function" && define.amd ) { 
// AMD模式。且依赖"jQuery"这个插件 
define( [ "jquery" ], factory ); } 
else { 
// 浏览器全局模式 
factory( jQuery ); 
} 
}(function( $ ) { 
// 这里放模块代码 
return $.widget; 
}));
Nach dem Login kopieren
Ändern Sie die AMD-Modulstruktur, um Ihren Code für das browserseitige Laden von Skriptabhängigkeiten besser geeignet zu machen. Schreiben Sie Code in diesem Format, um sicherzustellen, dass andere beim Betrachten des Codes erkennen, dass Sie ein professioneller Entwickler sind.

Optimale Methode erben

Die Flexibilität von JavaScript umfasst mehr als zehn große und kleine Vererbungsmethoden. Jede Schreibmethode hat unterschiedliche Vor- und Nachteile. Nehmen wir als Beispiel eine häufig verwendete Vererbungsmethode:

function Parent() {}
function Child() {}
Child.prototype = Parent.prototype
Child.prototype.constructor = Child ;
Nach dem Login kopieren

这种这种方法实际上是将Child.prototype和Parent.prototype中保存的指针指向了同一个对象,所以子对象原型中扩展一些属性以便之后继续继承的话,父对象的原型也会被改写。所以为了解决这个问题,尝试借用一个临时构造器的写法:

function Empty(){}
Empty.prototype = Parent.prototype;
Child.prototype = new Empty();
Child.prototype.constructor = Child;
Nach dem Login kopieren

这样父对象的自身属性和原型方法得到保护。“最优”有点夸大,但是是相比较而言的。相信每个人都有自己的写法,还有借用call和apply实现属性继承的优缺点,篇幅有限不一一介绍。

总结

上述所有的JavaScript的另类写法,一些是为了程序易懂或者效率提高的语法糖,这样的做法是比较可取的,比如前面所说的省略if-else的做法。一些是为了提升我们代码的兼容性和性能,比如AMD和继承的方式。……本人菜鸟一枚,上述内容肯定还有不全和没解释透彻的地方以后再补充。

以上内容是针对JavaScript的另类写法的相关介绍,希望对大家有所帮助!

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)

Was soll ich tun, wenn ich auf den Codendruck auf Kleidungsstücke für Front-End-Thermalpapier-Quittungen stoße? Was soll ich tun, wenn ich auf den Codendruck auf Kleidungsstücke für Front-End-Thermalpapier-Quittungen stoße? Apr 04, 2025 pm 02:42 PM

Häufig gestellte Fragen und Lösungen für das Ticket-Ticket-Ticket-Ticket in Front-End im Front-End-Entwicklungsdruck ist der Ticketdruck eine häufige Voraussetzung. Viele Entwickler implementieren jedoch ...

Wer bekommt mehr Python oder JavaScript bezahlt? Wer bekommt mehr Python oder JavaScript bezahlt? Apr 04, 2025 am 12:09 AM

Es gibt kein absolutes Gehalt für Python- und JavaScript -Entwickler, je nach Fähigkeiten und Branchenbedürfnissen. 1. Python kann mehr in Datenwissenschaft und maschinellem Lernen bezahlt werden. 2. JavaScript hat eine große Nachfrage in der Entwicklung von Front-End- und Full-Stack-Entwicklung, und sein Gehalt ist auch beträchtlich. 3. Einflussfaktoren umfassen Erfahrung, geografische Standort, Unternehmensgröße und spezifische Fähigkeiten.

Entmystifizieren JavaScript: Was es tut und warum es wichtig ist Entmystifizieren JavaScript: Was es tut und warum es wichtig ist Apr 09, 2025 am 12:07 AM

JavaScript ist der Eckpfeiler der modernen Webentwicklung. Zu den Hauptfunktionen gehören eine ereignisorientierte Programmierung, die Erzeugung der dynamischen Inhalte und die asynchrone Programmierung. 1) Ereignisgesteuerte Programmierung ermöglicht es Webseiten, sich dynamisch entsprechend den Benutzeroperationen zu ändern. 2) Die dynamische Inhaltsgenerierung ermöglicht die Anpassung der Seiteninhalte gemäß den Bedingungen. 3) Asynchrone Programmierung stellt sicher, dass die Benutzeroberfläche nicht blockiert ist. JavaScript wird häufig in der Webinteraktion, der einseitigen Anwendung und der serverseitigen Entwicklung verwendet, wodurch die Flexibilität der Benutzererfahrung und die plattformübergreifende Entwicklung erheblich verbessert wird.

Wie fusioniere ich Arrayelemente mit derselben ID mit JavaScript in ein Objekt? Wie fusioniere ich Arrayelemente mit derselben ID mit JavaScript in ein Objekt? Apr 04, 2025 pm 05:09 PM

Wie fusioniere ich Array -Elemente mit derselben ID in ein Objekt in JavaScript? Bei der Verarbeitung von Daten begegnen wir häufig die Notwendigkeit, dieselbe ID zu haben ...

Wie kann man Parallax -Scrolling- und Element -Animationseffekte wie die offizielle Website von Shiseido erzielen?
oder:
Wie können wir den Animationseffekt erzielen, der von der Seite mit der Seite mit der offiziellen Website von Shiseido begleitet wird? Wie kann man Parallax -Scrolling- und Element -Animationseffekte wie die offizielle Website von Shiseido erzielen? oder: Wie können wir den Animationseffekt erzielen, der von der Seite mit der Seite mit der offiziellen Website von Shiseido begleitet wird? Apr 04, 2025 pm 05:36 PM

Diskussion über die Realisierung von Parallaxe -Scrolling- und Elementanimationseffekten in diesem Artikel wird untersuchen, wie die offizielle Website der Shiseeido -Website (https://www.shiseeido.co.jp/sb/wonderland/) ähnlich ist ...

Der Unterschied in der Konsole.log -Ausgabeergebnis: Warum unterscheiden sich die beiden Anrufe? Der Unterschied in der Konsole.log -Ausgabeergebnis: Warum unterscheiden sich die beiden Anrufe? Apr 04, 2025 pm 05:12 PM

Eingehende Diskussion der Ursachen des Unterschieds in der Konsole.log-Ausgabe. In diesem Artikel wird die Unterschiede in den Ausgabeergebnissen der Konsolenfunktion in einem Code analysiert und die Gründe dafür erläutert. � ...

Ist JavaScript schwer zu lernen? Ist JavaScript schwer zu lernen? Apr 03, 2025 am 12:20 AM

JavaScript zu lernen ist nicht schwierig, aber es ist schwierig. 1) Verstehen Sie grundlegende Konzepte wie Variablen, Datentypen, Funktionen usw. 2) Beherrschen Sie die asynchrone Programmierung und implementieren Sie sie durch Ereignisschleifen. 3) Verwenden Sie DOM -Operationen und versprechen Sie, asynchrone Anfragen zu bearbeiten. 4) Vermeiden Sie häufige Fehler und verwenden Sie Debugging -Techniken. 5) Die Leistung optimieren und Best Practices befolgen.

So implementieren Sie die Funktion des Ziell- und Drop-Einstellungsfunktion, ähnlich wie bei VSCODE in der Front-End-Entwicklung? So implementieren Sie die Funktion des Ziell- und Drop-Einstellungsfunktion, ähnlich wie bei VSCODE in der Front-End-Entwicklung? Apr 04, 2025 pm 02:06 PM

Erforschen Sie die Implementierung der Funktion des Bedien- und Drop-Einstellungsfunktion der Panel ähnlich wie VSCODE im Front-End. In der Front-End-Entwicklung wird VSCODE ähnlich wie VSCODE implementiert ...

See all articles