2012-04-10 24 views
8

Mam frustrujący czas, próbując uruchomić to narzędzie, Chrome wyświetla błąd Uncaught Syntax, ale będąc początkującym w javascript, nie mam pojęcia, gdzie szukać. Każda pomoc lub wskazówki byłyby mile widziane.Javascript - Uncaught SyntaxError: Nieoczekiwany identyfikator

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

Zazwyczaj komunikat o błędzie jest opatrzony numerem linii. Możesz nawet na niego kliknąć, a pokaże ci dokładnie, gdzie jest błąd. –

+1

Szybki podgląd mówi, że brakuje Ci ";" po 'result =" jakiejś formie SUV "'. Nie jestem pewien, czy to jest problem. –

+0

Zmieniłbym również instrukcję if na "if ((paliwo ==" benzyna ") && (pasażerowie ==" 2 ") && (aircon ==" yes ") && (transmisja ==" półautomatyczna ")) '. Aha, i brakuje ci "=" w '(aircon =" yes ")', które powinno być '(aircon ==" yes ")' –

Odpowiedz

10

Jest tu kilka problemów z javascript. Powinieneś użyć narzędzia: JSLint, które jest bardzo dobrym narzędziem zapewnienia jakości JS, to sprawdzi Twój JS i wskaże widoczne problemy. :)

pierwsze:

aircon = "yes" 

powinny być

aircon == "yes" 

drugie:

if result = "Lambourghini Aventador") 

powinny być

if (result == "Lambourghini Aventador") 

trzecie

result = "some form of SUV" 

powinny być

result = "some form of SUV"; 

czwarte

powstrzymania się od stosowania == zamiast używać javascript standard ===

przeczytać dlaczego here in this very good Stackoverflow post!

Powodzenia! :)

+6

Proponujesz JSLint i pokazujesz '==' całą swoją odpowiedź ? To ironia! : p –

+0

Tak, jednak on/ona może chcieć użyć == z dowolnego powodu. Próbowałem podążać za jego konwencją kodowania, to jest powód. –

+3

PS, które powinny być "Lamborghini", a nie "Lambourghini". – jarmod

Powiązane problemy