2012-04-10 15 views
8

Ich habe eine frustrierende Zeit versucht, dies zu arbeiten, Chrome zeigt weiterhin eine Uncaught Syntax Fehler, aber als Anfänger zu Javascript, habe ich keine Ahnung, wo ich suchen soll. Irgendwelche Hilfe oder Zeiger würden geschätzt werdenJavascript - Uncaught SyntaxError: Unerwarteter Bezeichner

function details(user) { 
     var fuel = prompt("Would you prefer petrol or diesel?"); 
     var passengers = prompt("How many passengers will there be?"); 
     var aircon = prompt("Do you require air-conditioning?"); 
     var transmission = prompt("Do you want a Manual, Semi-Automatic or Automatic Transmission?"); 
     var hire = prompt("How long would you like to hire a vehicle for? (Day Hire, Weekend Hire or Weekly Hire)"); 

     if (fuel == "petrol" && passengers == "2" && aircon = "yes" && transmission == "semi-automatic") { 
     result = "Lambourghini Aventador"; 
    } else { 
     result = "some form of SUV" 
    } 
     if result = "Lambourghini Aventador") { 

     if (hire == "Day hire") { 
     cost = 2000; 
    } 
     if (hire == "Weekend hire") { 
     cost = 3800; 
    } 
     if (hire == "Weekly hire") { 
     cost = 12000; 
    } 
} 
} 
+2

Normalerweise wird die Fehlermeldung von einer Zeilennummer begleitet. Sie können sogar darauf klicken und es wird Ihnen genau zeigen, wo der Fehler ist. –

+1

Eine kurze Ansicht sagt mir, dass Sie ein ';' nach 'result =" irgendeine Form von SUV "'. Nicht sicher, ob dies das Problem ist. –

+0

Ich würde auch die if-Anweisung in 'if ((Kraftstoff ==" Benzin ") && (Passagiere ==" 2 ") && (Aircon ==" Ja ") && (Übertragung ==" halbautomatisch ") ändern) '. Oh, und du verpasst ein '=' in '(aircon =" ja ")', das sollte '(aircon ==" ja ") sein' –

Antwort

10

Es gibt einige Javascriptprobleme hier. Sie sollten das Tool verwenden: JSLint das ist ein sehr gutes JS-Qualitätssicherungswerkzeug, das wird Ihre JS validieren und offensichtliche Probleme aufzeigen. :)

Erstens:

aircon = "yes" 

sollte zweitens

aircon == "yes" 

sein:

if result = "Lambourghini Aventador") 

sollte

sein
if (result == "Lambourghini Aventador") 

drittens

result = "some form of SUV" 

sollte mit ==, verwenden Sie stattdessen den Javascript-Standard ===

Lesen Sie, warum here in this very good Stackoverflow post

result = "some form of SUV"; 

viertens

Refrain sein!

Viel Glück! :)

+6

Sie schlagen JSLint vor und zeigen '==' überall in Ihrer Antwort ? Das ist ironisch! : p –

+0

Ja, aber er/sie könnte == aus welchem ​​Grund auch immer sie wollen. Ich habe versucht, seiner/ihrer Konvention der Codierung zu folgen, das ist der Grund. –

+3

PS sollte "Lamborghini" nicht "Lambourghini" sein. – jarmod

Verwandte Themen