Sunday 24 September 2017

Javascript Read As Binary Optionen


ReadAsBinaryString sagt, dass die Daten als binärer String dargestellt werden müssen. Wo: jedes Byte wird durch eine Ganzzahl im Bereich 0..255 dargestellt. JavaScript hatte ursprünglich keinen binären Typ (bis ECMAScript 5s WebGL Unterstützung von Typed Array (Details unten) - es wurde durch ECMAScript 2015s ArrayBuffer ersetzt) ​​und so gingen sie mit einem String mit der Garantie, dass kein Zeichen in der String gespeichert wäre Außerhalb des Bereichs 0..255. (Sie könnten stattdessen mit einer Reihe von Zahlen gegangen sein, aber sie waren nicht vielleicht große Strings mehr Speicher-effizient als große Arrays von Zahlen, da Zahlen sind Gleitkomma.) Wenn Sie eine Datei lesen, die meistens Text in einem westlichen Skript ( Meist englisch, zum Beispiel), dann wird diese Saite wie ein Text aussehen. Wenn Sie eine Datei mit Unicode-Zeichen in ihr lesen, sollten Sie einen Unterschied bemerken, da JavaScript-Strings UTF-16 sind (Details unten) und so einige Charaktere Werte über 255 haben, wohingegen eine binäre Zeichenfolge nach der Datei-API-Spezifikation nicht haben würde Alle Werte über 255 (Sie haben zwei einzelne Zeichen für die beiden Bytes des Unicode-Code-Punktes). Wenn du eine Datei liest, die überhaupt keinen Text liest (ein Bild vielleicht), so bekommst du wohl noch ein sehr ähnliches Ergebnis zwischen readAsText und readAsBinaryString. Aber mit readAsBinaryString wissen Sie, dass es keinen Versuch gibt, Multi-Byte-Sequenzen als Zeichen zu interpretieren. Sie wissen das nicht, wenn Sie readAsText verwenden. Denn readAsText wird eine Codierungsbestimmung verwenden, um zu versuchen, herauszufinden, was die Dateikodierung ist und dann auf JavaScripts UTF-16 Strings abbilden. Sie können den Effekt sehen, wenn Sie eine Datei erstellen und sie in etwas anderes als ASCII oder UTF-8 speichern. (In Windows können Sie dies über Notepad die Save As als Codierung Drop-Down mit Unicode auf sie, durch die Blick auf die Daten, die sie scheinen zu bedeuten, UTF-16 Im sicher Mac OS und nix Editoren haben ein ähnliches Feature.) Heres Eine Seite, die das Ergebnis des Lesens einer Datei auf beide Weisen ablegt: Wenn ich das mit einer Testversion 1 2 3 Datei verwende, die in UTF-16 gespeichert ist, hier sind die Ergebnisse, die ich bekomme: Wie du sehen kannst, hat readAsText die Charaktere interpretiert und so bekam ich 13 (die Länge von Testing 1 2 3) und readAsBinaryString didnt, und so bekam ich 28 (die Zwei-Byte-Stückliste plus zwei Bytes für jedes Zeichen). XMLHttpRequest. response mit responseType arraybuffer wird in HTML 5 unterstützt. JavaScript-Strings sind UTF-16 mag wie eine ungerade Aussage arent sie nur Unicode Nein, ein JavaScript-String ist eine Reihe von UTF-16 Code-Einheiten sehen Sie Surrogat-Paare als zwei einzelne JavaScript Charaktere, obwohl in der Tat das Surrogat-Paar als Ganzes nur ein Charakter ist. Siehe den Link für Details. DigitalFresh: Die Zeichenfolge ist die Binärdaten. Wie du kommentiert hast, habe ich ein Beispiel geschrieben, das helfen kann. JavaScript doesn39t haben einen quotbinaryquot Typ und so gingen sie mit einem String mit der Garantie, dass kein Zeichen in der Zeichenfolge lag außerhalb des Bereichs 0..255. (Sie könnten stattdessen mit einer Reihe von Zahlen gegangen sein, aber sie haben es nicht getan.) Das Beispiel zeigt, wie man den Rohwert eines Quatscharktes aus der Zeichenkette erhält. Ndash T. J. Crowder Jun 30 10 at 5:09 morpheus: Weil dieses Zeug asynchron ist, kann es Ausnahmen, die du brauchst, um die Schnittstelle zu sehen, um zu sehen, ob es irgendeine asynchrone Art und Weise gibt es Fehler. Und in der Tat hat FileReader dazu geführt. Wenn du eine Datei nimmst: 4747 URL, deine Dokumentdomäne ist null, was dazu neigt, dich von vielen Dingen zu beenden (ich kenne die Details nicht, ich mache es nie), esp. Wenn die SOP hineingeht. I39m ziemlich sicher it39s bis zum Browser, zumindest für jetzt, da der Sicherheitsteil der Spezifikation noch vorläufig ist: w3.orgTRFileAPIsecurity-Diskussion Aber ich würde es nicht erwarten zu arbeiten. Ndash T. J. Crowder Nov 5 10 at 18:12 Vielen Dank TJCrowder - Ich habe meinen Kommentar gelöscht, um zu verhindern, dass andere von meiner Vereinfachung irregeführt werden, und danke für die Veröffentlichung der Details - ich bin mir sicher, dass andere deine Kommentare viel mehr hilfreich finden (und das Lesen der Artikel ist wirklich eine gute Idee, wie Sie sagen, wenn man in diesem Bereich herumtreibt). Ndash Brian M. Hunt Dec 30 14 at 14: 16As Teil einer Reihe von Artikeln, die ich diskutiere einige der Herausforderungen, die ich konfrontiert, wenn ich versuche, eine HTML5 und JavaScript kostenlose Online-Icons Editor zu bauen. Ich wollte, dass Benutzer in der Lage sind, vorhandene Icon-Dateien in meinem Icon-Editor zu öffnen und zu bearbeiten. Da Icon-Dateien mehrere Frames enthalten können, musste ich auf diese einzelnen Frames zugreifen, damit sie angezeigt und für den Benutzer verfügbar sein können. Die Anzahl, Größe und Lage der in einem Symbol enthaltenen Frames sind alle im Icon Header gespeichert. Der Icon-Header ist ein Sammlungsbytes, das sich am Anfang einer Icon-Datei befindet, also musste ich die in der Datei enthaltenen Binärdaten lesen. Wir können jetzt Dateien einfach im Browser lesen, ohne dass wir keine Daten an einen Server senden müssen. In dieser Tranche zeige ich, wie man mit der HTML5 File API binäre Daten einer lokalen Datei im Browser lesen kann. Um zu beginnen, würde man ein Eingabeelement hinzufügen und das Typattribut auf Datei setzen, dann werden wir in einem Script-Block die Datei-Eingaben auf das Exchange-Ereignis behandeln. lt Körper gt160160160160160160160160160160160160160160160160160160160160160160160160160160160160 160.160.160.160 lt input id quotbrowseOpenquot Typ quotfilequot gt 160.160.160.160 lt script type quottextjavascriptquot gt 160160160160160160160160 var FileInput - document. getElementById (quotbrowseOpenquot) 160160160160160160160160 fileInput. onchange function () 160160160160160160160160160160160160-Code onChange Ereignis zu behandeln geht hier 160160160160 160160160160 160160160160 lt Skript gt lt Körper gt Jetzt müssen wir den Code hinzufügen, um das onchange - Ereignis zu behandeln. Hier werden wir ein FileReader-Objekt erstellen. Wir verwenden die readAsBinaryString-Methode des FileReader-Objekts, die uns die rohen Binärdaten gibt. Wir können ein File-Objekt an den readAsBinaryString übergeben, wenn wir die ganze Datei lesen wollen oder ein Blob-Objekt übergeben können, wenn wir nur einen bestimmten Abschnitt einer Datei lesen wollen. In diesem Beispiel werden wir ein File-Objekt übergeben, um die gesamte Datei zu lesen. Wir müssen auch das onladend-Ereignis des FileReaders behandeln, da die Daten, die wir mit readAsBinaryString lesen, nur verfügbar sind, wenn die gesamte Datei oder der Blob vom FileReader gelesen wurde. Unser Code in der onchange Event-Handler sieht jetzt so aus. 160160160160160160160160 var fr new FileReader () 160160160160160160160160 fr. onloadd Funktion () 160160160160160160160160160160160160 Code zum Umgang mit geladenem Ereignis 160160160160 160160160160 160160160160160160160160 fr. readAsBinaryString (diese. files 0) Im onladend Event-Handler können wir auf die Daten zugreifen, die gerade über die FileReader gelesen wurden Ergebnisattribut. Wir können dann das Ergebnisattribut durchlaufen und die Methode charCodeAt aufrufen, um einen Integer-Wert jedes Bytes zurückzugeben. In diesem Beispiel werde ich das Byte in eine hexadezimale Stringdarstellung mit toString (16) konvertieren, eine lange Zeichenkette aufbauen und dann den String dem Benutzer anzeigen. Heres das volle Arbeitsbeispiel. lt DOCTYPE HTML gt lt html gt lt Kopf gt 160160160160 lt Titel gtReading Binärdaten mit dem File API und JavaScriptlt Titel gt lt Kopf gt lt Körper gt160160160160160160160160160160160160160160160160160160160160160160160160160160160160 160160160160 lt input id quotbrowseOpenquot Typ quotfilequot gt 160160160160 lt script type quottextjavascriptquot gt 160160160160160160160160 var FileInput - document. getElementById (quotbrowseOpenquot) 160160160160160160160160 fileInput. onchange function () 160160160160160160160160160160160160 var fr neue Filereader () 160160160160160160160160160160160160 fr. onloadend function () 160160160160160160160160160160160160160160160160 var Ergebnis dieser. RESULT 160160160160160160160160160160160160160160160160 var hex quotquot 160160160160160160160160160160160160160160160160 for (var i 0 i lt dieses. result. length i) 160160160160160160160160160160160160160160160160160160160160 var byteStr result. charCodeAt (i).toString (16) 160160160160160160160160160160160160160160160160160160160160 if (byteStr. length lt 2) 160160160160160160160160160160160160160160160160160160160160160160160160 byteStr quot0quot byteStr 160160160160160160160160160160160160160160160160160160160160 160160160160160160160160160160160160160160160160160160160160 hex quot quot byteStr 160160160160160160160160160160160160160160160160 160160160160160160160160160160160160160160160160 alert (hex) 160160160160160160160160160160160160 160160160160160160160160160160160160 fr. readAsBinaryString (diese. files 0) 160160160160160160160160 160160160160 lt script gt lt body gt lt html gtjDataView bietet eine Standardmethode, um Binärdateien in allen Browsern zu lesen. Es folgt die DataView Spezifikation und verlängert sie sogar für eine praktischere Anwendung. Erläuterung Es gibt drei Möglichkeiten, eine Binärdatei aus dem Browser zu lesen. Die erste ist, die Datei durch XHR mit charsetx-user-defined herunterzuladen. Sie erhalten die Datei als String. Und du musst alle Decodierungsfunktionen umschreiben (getUint16, getFloat32.). Alle Browser unterstützen das. Dann haben Browser, die WebGL implementiert haben, auch ArrayBuffers hinzugefügt. Es ist ein einfacher Puffer, der mit Ansichten mit dem Namen TypedArrays (Int32Array, Float64Array) gelesen werden kann. Sie können sie verwenden, um die Datei zu dekodieren, aber das ist nicht sehr praktisch. Es hat großen Nachteil, es kann nicht lesen, non-aligned Daten. Es wird von Firefox 4 und Chrome 7 unterstützt. Eine neue Revision der Spezifikation hinzugefügt DataViews. Es ist eine Ansicht um Ihren Puffer, der beliebige Datentypen direkt über Funktionen lesen kann: getUint32, getFloat64. Nur Chrome 9 unterstützt es. JDataView stellt die DataView API für alle Browser zur Verfügung, wobei die beste verfügbare Option zwischen Strings, TypedArrays und DataViews verwendet wird. Siehe die Spezifikation für eine detaillierte API. Khronos. orgregistrywebgldocspecTypedArray-spec. html6. Jeder Code, der für DataView geschrieben wird, wird mit jDataView arbeiten (außer wenn er etwas schreibt). Konstruktor neue jDataView (Puffer, Offset, Länge). Puffer kann entweder eine String oder eine ArrayBuffer Spezifikation API sein Der Wrapper erfüllt alle Spezifikation Getter. GetInt8 (byteOffset, littleEndian) getInint16 (byteOffset, littleEndian) getUint16 (byteOffset, littleEndian) getInint32 (byteOffset, littleEndian) getUint32 (byteOffset, littleEndian) getUint32 (byteOffset, littleEndian) getFloat32 (byteOffset, littleEndian) getFloat64 (byteOffset, littleEndian) Erweiterte Spezifikation Der Parameter byteOffset ist Jetzt optional Wenn du es weglisst, liest es nach dem letzten Leseoffset. Mit diesen internen Zeigern können Sie mit diesen beiden Funktionen interagieren. Suche (byteOffset): Verschiebt den internen Zeiger auf die Position tell (): Liefert die aktuelle Position Hinzufügen von getChar - und getString-Dienstprogrammen. Hinzufügen von createBuffer, ein Dienstprogramm, um einfach Puffer mit dem neuesten verfügbaren Speichertyp (String oder ArrayBuffer) zu erstellen. Unzulänglichkeiten Nur die Lese-API wird eingewickelt, jDataView stellt keine Set-Methode zur Verfügung. Die Float64-Implementierung auf Strings hat keine volle Präzision. Zuerst brauchen wir eine Datei. Entweder man bekommt es durch XHR oder benutzt das createBuffer utility. Bits, Bytes und Bases: Schreiben Sie ein JavaScript BinaryDecimalHexadecimal Converter Quick Tutorial auf exponentielle Notation (Sie können dies überspringen, wenn Sie es bereits wissen). Exponentielle Notation ist eine kompakte Art, Multiples einer Zahl auszudrücken. Zum Beispiel, wie Sie in der Tabelle gesehen haben: 10 3 10times10times10 1000 Eine gleichwertige Aussage in Worten ist: Zehn bis dritter Macht entspricht zehnmal zehnmal zehn, was ebenfalls gleich tausend ist. Der Exponent (3, in diesem Fall), erzählt, wie oft die Basis zu multiplizieren (10 in diesem Fall). Eine beliebige Zahl, die auf die 0. Potenz angehoben wird, ist gleich 1. Das ist für binäre (Basis 2) Zahlen ist es ähnlich, aber jetzt sind nur noch zwei Ziffern verfügbar (0 und 1), und die Platzwerte erhöhen die Potenzen von zwei. Die nächste Tabelle zeigt die gleiche Zahl (3.897) in binärer Darstellung. Offensichtlich dauert es viel mehr Ziffern als in der Basis zehn Binäre Darstellung von 3.897 ist: 1111 0011 1001 Check it out für sich selbst und stellen Sie sicher, dass es alles addiert Bits und Bytes Jede binäre Ziffer wird ein bisschen genannt. Benutze die obige Tabelle, um zu sehen, wie viele Bits es braucht, um 3.897 zu repräsentieren. Gehen Sie voran, warten Sie noch. Das ist richtig, zwölf Bits. Das rechtste Bit (das eine Bit) ist das niedrigstwertige Bit und das linkste Bit (das zweitausend achtundvierzig Bit) ist das bedeutendste Bit. Da es bei dem Lesen eines langen Strings von 0s und 1s leicht zu verlieren ist, werden Binärzahlen oft in 4-Bit-Gruppen angezeigt: 1111 0011 1001. Zwei dieser 4-Bit-Gruppen (acht Bits insgesamt) machen einen Byte Die die Grundeinheit zur Messung der Größe eines digitalen Speichers oder Speichers ist. Was können Sie in einem Byte speichern Denken Sie darüber nach, wie viele verschiedene Zahlen mit einem Byte codiert werden können. (Es kann helfen, eine Analogie mit Dezimalzahlen zu machen: Wie viele verschiedene Zahlen können Sie mit 2 Ziffern kodieren, wie viele mit 3 Ziffern) Ein Kilobyte (abgekürztes kB) ist nicht 1000 Bytes, wie Sie vielleicht denken, wenn Sie Ihre metrischen Präfixe kennen . Da dies die digitale Welt ist, ist alles in Potenzen von 2, also ist ein Kilobyte 1024 Bytes (2 10 Bytes). Ähnlich ist ein Megabyte (MB) 1024 × 1024 Bytes (1.048.576 Bytes 2 20 Bytes). Hexadezimal: Base 16 Binäre Zahlen sind für Computer gut, aber sind nicht besonders praktisch für Leute zu verwenden. Allerdings, wenn Sie eine Maschine programmieren, die mit Binärzahlen arbeitet, ist es manchmal praktisch, mit Zahlen zu arbeiten, die als Potenzen von 2 anstelle von Potenzen von 10 dargestellt werden. Hexadezimal-Notation (Basis 16) wird oft aus diesem Grund verwendet. Wie Sie erwarten würden, gibt es in hexadezimal gibt es 16 Ziffern, und jede Ziffer steht für eine Kraft von 16. Wir verwenden Dezimalstellen für 0ndash9 und die ersten sechs Buchstaben des Alphabets AndashF für die hexadezimalen Ziffern entsprechend den Dezimalzahlen 10ndash15. Die folgende Tabelle zeigt die ersten 16 Zahlen (beginnend mit Null) in binärer, hexadezimaler und dezimaler Notation. Binär-, Hexadezimal - und Dezimalzahlen Seit 16 2 4. Es ist nicht verwunderlich, dass eine Hexadezimalziffer 4 Bits entspricht. Können Sie sehen, was die hexadezimale Darstellung für 3.897 wäre Eine weitere interessante Tatsache, die Sie vielleicht bemerkt haben, ist, dass das niedrigstwertige Bit der Binärdarstellung anzeigt, ob die Zahl ungerade oder gerade ist. Fehlerkorrekturcode-Algorithmen zum Senden und Empfangen von Daten (die von NASA-Satellitenübertragungen bis hin zu Mobiltelefonen an CD-Spieler verwendet werden) nutzen diese Eigenschaft häufig. Eine einfache Möglichkeit, Ihre Eingangselemente ordentlich auszurichten, ist die Verwendung eines HTML-ltTABLEgt-Elements (ein Beispiel wird unten gezeigt). Der Tisch hat zwei Spalten. Jeder Eingang ist eine separate Zeile in der Tabelle. Die Etiketten befinden sich in der ersten Spalte und die Eingabefelder befinden sich in der zweiten Spalte. Die Etiketten sind am rechten Rand ihrer Säule ausgerichtet und die Eingabefelder sind am linken Rand ihrer Säule ausgerichtet. Der HTML-Code für diese Beispieltabelle wird ebenfalls angezeigt (unterhalb der Tabelle selbst). ltFORM METHODpostgt ltTABLE BORDER1 Aligncenter CELLPADDING10gt ltTRgt ltTH COLSPAN2gtBinaryDecimalHexadecimal Converter Schnittstelle ExampleltTHgt ltTRgt ltTRgt LTTD ALIGNRIGHTgtltBgtBinary: ltBgtltTDgt LTTD ALIGNLEFTgtltINPUT NAMEbin value0 nur lesbar onChangeConvertBin (Form) SIZE10gtltINPUTgtltTDgt ltTRgt ltTRgt LTTD ALIGNRIGHTgtltBgtDecimal: ltBgtltTDgt LTTD ALIGHLEFTgtltINPUT NAMEdec value0 nur lesbar onChangeConvertDec (Form) SIZE10gtltINPUTgtltTDgt ltTRgt ltTRgt LTTD ALIGNRIGHTgtltBgtHexadecimal: ltBgtltTDgt LtTD ALIGNLEFTgtltINPUT NAMEhex VALUE0 readonly onChangeConvertHex (Formular) SIZE10gtltINPUTgtltTDgt ltTRgt ltTABLEgt ltFORMgt Hinweise zum HTML-Tabellencode. Beachten Sie, dass die Größe jedes Eingabeelements in der Tabelle gleich ist. Sie müssen passende Größen für Ihre Eingabeelemente herausfinden, damit sie den gleichen Wertebereich berücksichtigen (denken Sie daran, dass Binärzahlen in der Regel mehr Ziffern benötigen). Beachten Sie, dass jedes der Eingabeelemente das onChange - Ereignis verwendet, um eine JavaScript-Funktion aufzurufen. Wenn also der Benutzer einen Wert ändert, wird diese Funktion aufgerufen, um die Werte für die beiden anderen Darstellungen zu aktualisieren. Weve nur versucht, ein paar wichtige Punkte zu decken, um Ihnen zu beginnen, nicht jedes Detail darüber, wie der Tisch zusammengestellt wird. Es gibt einen Verweis in der Bibliographie mit detaillierten Informationen zum Schreiben von HTML-Tabellen. Durch die Verwendung dieser Referenz, sollten Sie in der Lage, alle verbleibenden Fragen, die Sie über die Tabelle zu beantworten. Der erste Eintrag in der Bibliographie ist eine hervorragende Referenz für Informationen zum Schreiben eines Basisumwandlungsalgorithmus. Kombiniert mit dem hier zur Verfügung stehenden Material sollten Sie in der Lage sein, einen binarydecimalhexadezimalen Konverter zusammenzustellen. Übrigens können Sie also Ihre Antworten auf die Fragen von früher in der Einleitung überprüfen: Ein Byte kann 256 (2 8) eindeutige Werte kodieren. Die hexadezimale Darstellung für 3.897 ist F39. Jede hexadezimale Ziffer entspricht 4 Bits der Binärdarstellung: 1111 0011 1001. Begriffe und Konzepte Um dieses Projekt zu machen, sollten Sie die folgenden Begriffe und Konzepte verstehen (die Hintergrundforschung, um Lücken in Ihrem Wissen auszufüllen): Binär (Basis 2 ), Dezimalzahl (Basis 10), Hexadezimal (Basis 16), Bit, Byte, Kilobyte (kB), Megabtye (MB), Radix (Zahlenbasis). Grundlegende HTML-Konzepte: Start-Tags und End-Tags, Kommentare, den ltHEADgt-Bereich, den ltSCRIPTgt-Bereich, den ltBODYgt-Bereich, den ltFORMgt-Abschnitt, das ltINPUTgt-Tag, das ltTABLEgt - Tag, JavaScript-Konzepte: Funktionen, Variablen, Objekte, Eigenschaften, Methoden, Ereignisse, Arrays. Allgemeine Programmierkonzepte: reservierte Wörter, Kontrollanweisungen (z. B. if. Else-Anweisungen, für und während Schleifen) Operatoren: arithmetische Operatoren: plus, minus, times, divide, modulus (.-.), Zuweisungsoperatoren: z. B. . . -. . . Vergleichsoperatoren: z. B. Lt Gt Lt Gt . Logische Operatoren: UND, ODER und NICHT (ampamp.). Mit der Binärdarstellung von Integern, die in der Einleitung beschrieben sind, wie viele eindeutige Ganzzahlen mit 8 Bits mit 12 Bits mit n Bits dargestellt werden können, wobei n eine positive ganze Zahl ist. Mit der hexadezimalen Darstellung von Integern, die in der Einleitung beschrieben sind, wie viele eindeutige ganze Zahlen können Mit 2 hexadezimalen Ziffern mit 3 hexadezimalen Ziffern mit n hexadezimalen Ziffern dargestellt werden, wobei n eine positive ganze Zahl ist Bibliographie Erläuterung einer JavaScript-Implementierung der Basisumwandlung: A. Bogomolny. (N. d.). Implementierung von Basiskonvertierungsalgorithmen aus interaktiver Mathematik Miscellany und Puzzles. Abgerufen am 17. März 2014, von cut-the-knot. orgrecurrenceconversion. shtml Sie finden eine Schritt-für-Schritt-JavaScript-Tutorial unter dem Link unten. Nach dem Studium der Tutorial, sollten Sie in der Lage sein, alle oben genannten Fragen zu beantworten, und youll bereit sein, einen einfachen Taschenrechner zu schreiben. Webteacher Software. (2006). JavaScript-Tutorial für den Total Non-Programmer. Webteacher Software, LLC. Abgerufen am 6. Juni 2006, von webteacherjavascriptindex. html Einführung in die Programmierung von Matt Gemmell beschreibt, was Programmierung eigentlich ist: Gemmell, M. (2007). Einführung in die Programmierung. Deans Director Tutorials amp Ressourcen. Abgerufen am 14. März 2014, von deansdirectortutorialsLingoIntroductionToProgramming. pdf HTML Formulare Referenz: W3C. (1999). Formulare in HTML-Dokumenten, HTML 4.01 Spezifikation. World Wide Web Consortium: Massachusetts Institut für Technologie, Institut National de Recherche en Informatique et en Automatique, Keio Universität. Abgerufen am 6. Juni 2006, aus w3.orgTRREC-html40interactforms. html HTML-Tabellen Referenz: W3C. (1999). Tabellen in HTML-Dokumenten. World Wide Web Consortium: Massachusetts Institut für Technologie, Institut National de Recherche en Informatique et en Automatique, Keio Universität. Abgerufen am 6. Juni 2006 aus w3.orgTRREC-html40structtables. html Eine Liste der reservierten Wörter in JavaScript (Sie können diese Wörter nicht für Funktions - oder Variablennamen in Ihrem Programm verwenden, da sie für die Programmiersprache selbst reserviert sind): JavaScript Kit. (2006). JavaScript reservierte Wörter. Abgerufen am 6. Juni 2006, von JavaScriptkitjsrefreserved. shtml Ein JavaScript-Referenz: Mozilla Developer Network und einzelne Mitwirkende. (2013, 14. Dezember). JavaScript-Referenz. Abgerufen am 14. März 2014, von developer. mozilla. orgen-USdocsWebJavaScriptReference Wenn Sie interessiert sind und anfangen, eine Menge Web-Entwicklung zu machen, können Sie einen Texteditor verwenden, der ein wenig anspruchsvoller ist als Notepad. Ein Editor, der für Web-Entwicklung und Programmierung entwickelt wurde, kann bei der Formatierung helfen, damit Ihr Code besser lesbar ist, aber immer noch Textdateien erstellt. Diese Art von Editor kann auch Web-spezifische HTML-Codierung Details ausfüllen und Syntax-Hervorhebung (z. B. automatische Farb-Codierung von HTML), die Ihnen helfen, Fehler zu finden. Eine Option ist der CoffeeCup HTML Editor, der in kostenlosen und voll funktionsfähigen Versionen für Microsoft Windows und Apple OS X verfügbar ist. Materialien und Ausrüstung Computer mit Webbrowser (z. B. Internet Explorer, Firefox) Textbearbeitungsprogramm wie Notepad Alternativ. Versuche einen HTML-Editor wie CoffeeCup, wenn du zusätzliche Hilfe bei der Formatierung und Syntax wünschst. Optionen beinhalten kostenlose und voll funktionsfähige Versionen für Microsoft Windows und Apple OS X. Experimentelle Vorgehensweise Mit dem, was Sie über eine ganzzahlige Darstellung in verschiedenen Basen und Programmierung in JavaScript gelernt haben, erstellen Sie einen binarydecimalhexadezimalen Konverter. Das Programm sollte für jede Art von Nummer separate Eingabefelder haben. Denken Sie daran, dass binäre Darstellungen in der Regel mehr Ziffern als dezimale oder hexadezimale Darstellungen verwenden, also passen Sie die Größen Ihrer Eingabefelder entsprechend an. Verwenden Sie die Eingabefelder onChange-Ereignis, so dass, wenn der Benutzer eine Nummer in einem der Felder eingibt, die anderen beiden mit der neuen Nummer aktualisiert und in die entsprechende Basis konvertiert werden. Es gibt hier mehrere Unteraufgaben. Nehmen Sie die Unteraufgaben ein zu einer Zeit, und schrittweise aufbauen die Fähigkeiten Ihres Programms. Vergewissern Sie sich, dass der Code für jede Unteraufgabe ordnungsgemäß funktioniert, bevor Sie zur nächsten Unteraufgabe wechseln. Testen Sie Ihr Programm, indem Sie Conversions von jeder Art von Eingabe überprüfen. Hier sind einige allgemein anwendbare Programmier-Tipps zu beachten, wie Sie mit diesem Projekt beginnen. Planen Sie Ihre Arbeit. Methodisch denken Sie durch alle Schritte, um Ihr Programmierproblem zu lösen. Versuchen Sie, die Aufgaben in kurze, überschaubare Funktionen zu verteilen. Denken Sie an die Schnittstelle für jede Funktion: welche Argumente müssen an die Funktion übergeben werden, damit sie ihren Job machen können. Verwenden Sie sorgfältige Namensgebung, gute Formatierung und beschreibende Kommentare, um Ihren Code verständlich zu machen. Geben Sie Ihre Funktionen und Variablen Namen, die ihren Zweck im Programm widerspiegeln. Eine gute Namenswahl macht den Code besser lesbar. Markieren Sie die Anweisungen im Körper einer Funktion, so dass es klar ist, wo der Funktionscode beginnt und endet. Geben Sie die Anweisungen ein, die auf eine if, else, for oder oder control-Anweisung folgen. Auf diese Weise können Sie leicht sehen, welche Aussagen für einen bestimmten Zweig oder eine Schleife in Ihrem Code ausgeführt werden. Beschreibende Kommentare sind wie Notizen für sich selbst. Oftmals in der Programmierung, youll laufen in ein Problem ähnlich wie ein Sie zuvor gelöst. Wenn Ihr Code gut kommentiert wird, wird es es leichter machen, zurückzugehen und später Stücke wieder zu verwenden. Ihre Kommentare helfen Ihnen zu erinnern, wie Sie das vorherige Problem gelöst haben. Arbeit schrittweise. Wenn Sie ein Programm erstellen, ist es fast unvermeidlich, dass auf dem Weg werden Sie auch Fehler machen. Bugs sind Fehler in deinem Code, die entweder dazu führen, dass dein Programm sich in einer Weise verhält, die du nicht beabsichtigt hast, oder dass es aufhört zu arbeiten. Je mehr Zeilen Code, desto mehr Chancen für Bugs. Also, besonders wenn man zum ersten Mal anfängt, ist es wichtig, inkrementell zu arbeiten. Machen Sie nur eine Änderung zu einer Zeit, stellen Sie sicher, dass es wie erwartet funktioniert und dann weiter. Mit JavaScript ist das einfach zu tun. Um deinen Code zu überprüfen, musst du nur deinen Webbrowser benutzen, um die HTML-Datei mit deinem Code zu öffnen. Nachdem Sie eine Änderung in den Code mit Ihrem Texteditor vorgenommen haben, speichern Sie einfach die Datei, dann wechseln Sie zu Ihrem Browser und drücken Sie die Re-Load-Seite Schaltfläche, um die Änderung in Aktion zu sehen. Testen Sie, um sicherzustellen, dass Ihr Code wie erwartet funktioniert. Wenn Ihr Code Abzweigungspunkte hat, die von der Benutzereingabe abhängen, stellen Sie sicher, dass Sie jeden der möglichen Verzweigungspunkte testen, um sicherzustellen, dass es keine Überraschungen gibt. Auch eine gute Idee, Ihre Datei einmal in einer Weile mit einem anderen Namen zu sichern. Auf diese Weise, wenn etwas wirklich falsch geht und man kann es nicht herausfinden, müssen Sie nicht von vorne anfangen. Stattdessen kannst du zu einer früheren Version zurückkehren, die gearbeitet hat und von dort anfängt. Wenn Sie mehr Erfahrung mit einer bestimmten Programmierumgebung gewinnen, können Sie in der Lage sein, größere Chunks von Code auf einmal zu schreiben. Sogar dann ist es wichtig, sich daran zu erinnern, jeden neuen Codeabschnitt zu testen, um sicherzustellen, dass es wie erwartet funktioniert, bevor er zum nächsten Stück weitergeht. Durch das Erhalten in der Gewohnheit, inkrementell zu arbeiten, youll verringern die Menge der Zeit, die Sie verbringen, um zu identifizieren und zu beheben Bugs. Beim Debugging, funktionieren Sie methodisch, um das Problem zu isolieren. Wir haben dir gesagt, dass Bugs unvermeidlich sind, also wie machst du sie zu beunruhigen Nun, der erste Schritt ist, das Problem zu isolieren: welche Zeile hat das Programm aufhören zu arbeiten wie erwartet Wenn du dem vorherigen Tipp folgst und schrittweise arbeitest, kannst du sein Ziemlich sicher, dass das Problem mit der Linie ist, die Sie gerade geschrieben haben. Überprüfen Sie nach einfachen Tippfehlern zuerst. Ein falsch geschriebener Funktionsname wird nicht erkannt. In JavaScript erstellt ein falsch geschriebener Variablenname einfach eine neue Variable. Dies ist ein einfacher Fehler zu machen, und kann schwer zu finden. Vermeiden Sie die Verwendung von reservierten Wörtern als Variablen - oder Funktionsnamen. Testen Sie Ihr Programm gründlich. Sie sollten das Programm schrittweise testen, während Sie es schreiben, aber Sie sollten auch das abgeschlossene Programm testen, um sicherzustellen, dass es sich wie erwartet verhält. Variationen Fügen Sie Funktionen hinzu, um jeden Eingang zu überprüfen, um sicherzustellen, dass nur entsprechende Ziffern eingegeben werden. Verwenden Sie die integrierte JavaScript-Alert () - Funktion, um eine Nachricht zu öffnen, die dem Benutzer mitteilt, was das Problem ist und fordert sie auf, eine gültige Nummer einzugeben. Verallgemeinern Sie Ihren Konverter, um Basis 2 auf Basis 36 zu verarbeiten (wenn das Alphabet aus Buchstaben für mehr Ziffern läuft). Der von Ihnen geschriebene Konverter ist für unsignierte Ganzzahlen (die positiven ganzen Zahlen plus Null) ausgelegt. Was ist mit negativen Zahlen Für ein fortgeschritteneres Projekt, Forschung zu erlernen, wie negative Zahlen in binärer Notation dargestellt werden und erweitern Sie Ihren Konverter, um negative Zahlen zu behandeln. Was ist mit rationalen Zahlen Für ein viel fortgeschritteneres Projekt, Forschung zu erlernen, wie Fließkommazahlen in binärer Notation dargestellt werden und erweitern Sie Ihren Konverter, um diese Zahlen zu behandeln. Fragen Sie einen Experten Das Fragen Sie ein Expertenforum ist ein Ort, wo die Schüler gehen können, um Antworten auf wissenschaftliche Fragen zu finden, die sie nicht in der Lage waren, mit anderen Ressourcen zu finden. Wenn Sie konkrete Fragen zu Ihrem wissenschaftlichen Messe - oder Wissenschaftsmesse haben, kann unser Team von Freiwilligen Wissenschaftlern helfen. Unsere Experten werden nicht die Arbeit für Sie tun, aber sie werden Vorschläge machen, bieten Anleitung und helfen Ihnen bei der Fehlersuche. verwandte Links

No comments:

Post a Comment