2016-06-27 7 views
-3

Auf this Seite über Javascript Kürzeln, von Sam Deering, seit langer Hand Beispiel ist wie folgt (die Website verwendet eine vor-und-nach-Format):Was bedeutet während Javascript (i < 9)?

var i=0; 
while (i&lt;9) 
{ 
    //do stuff 
    i++; //say 
} 

Während ich das nicht, ich verstehe verstehen sie die Kurz Hand-Version, die ist:

var i=9; 
while(i--) 
{ 
    //goes until i=0 
} 

ich weiß nicht, wäre es, wenn i ist das gleiche in beiden Schleifen, aber davon ausgehen, dass sie beide Schleife 9 mal. Weil ich meine Grenzen erweitern und meine Programmierfähigkeiten verbessern möchte, was bedeutet das while (i&lt;9) und wie kann ich es (mit anderen Nummern) benutzen?

+5

Das ist höchstwahrscheinlich ein Codierungsproblem. '<' ist die HTML-Entität für das '<' Zeichen. Der Autor erwähnt sogar "while (i ++ <10)" als Alternative, das ist also klar, was beabsichtigt war. –

+0

Schreiben Sie Ihren Code ohne Shorthands wie folgt. Es ist Arbeit für Minifier. –

+1

Sie erhalten Downvotes, weil die meisten Leute denken, dass Sie es falsch machen. Wenn Sie HTML nicht verwenden, können Sie sie ignorieren, '<' ist ein richtiger Weg, um '<' in XHTML zu entkommen. Die Verwendung von '<' könnte einen drakonischen Analysefehler verursachen. – Oriol

Antwort

3

In XML, z.B. XHTML, müssen Sie < ordnungsgemäß als &lt; entkommen.

In HTML ist es nicht notwendig, dies innerhalb script Elemente zu tun, weil ihre Inhalte in einer speziellen Art und Weise analysiert werden, aber XML tut diese unangenehmen Dinge nicht.

Zum Beispiel können Sie index.xhtml schreiben:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head><title>Some document</title></head> 
<body> 
<script type="text/javascript"> 
var i=0; 
while (i &lt; 9) i++; 
console.log(i); // 9 
</script> 
</body> 
</html> 

Die meisten Menschen wollen nicht XML-escape JavaScript Operatoren in Inline-Scripts, so dass sie CDATA-Abschnitte verwenden:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head><title>Some document</title></head> 
<body> 
<script type="text/javascript"> 
<![CDATA[ 
var i=0; 
while (i < 9) i++; 
console.log(i); // 9 
]]> 
</script> 
</body> 
</html> 
2

Ihre HTML-Datei hat höchstwahrscheinlich einige Codierungsquirks. &lt; entspricht dem weniger als < in HTML-Entitäten. Also wirklich können Sie das als while (i<9) lesen.

+1

Nur fyi ein "Becken" ist eine Messing Sache, die Schlagzeuger mit Stöcken schlagen; Du suchst nach "Symbol". :) – Pointy

+0

@ Pointy Weißt du was? Ich spiele eigentlich Schlagzeug, also stoße ich eher auf "Becken" als auf "Symbole". Danke für die Köpfe hoch. – Coderchu