2013-05-17 12 views
46

Tworzę prostą grę w JavaScript, ale w opowiadaniu potrzebuję jej nazwy gracza. więc do tej pory mam:Jak dodać zmienną do pliku console.log?

var name = prompt("what is your name?"); 

console.log("story" name "story); 

Jak zrobić drugą linię? albo jest inny sposób, w jaki mógłbym to zrobić. Czy można mieć 2 console.log(); na 1 linii w konsoli?

+0

Czy chcesz po prostu połączyć łańcuchy? Co masz na myśli mówiąc "czy masz drugą linię"? – cogsmos

+0

^cogsmos, teraz nie ma znaczenia, moje pytanie zostało odebrane –

+0

Cieszę się, że to wymyśliłeś. W JavaScript + można używać do arytmetyki, a także do łączenia ze sobą dwóch ciągów (zwanych także łączeniem). Zajrzyj tutaj, aby uzyskać więcej informacji: http://www.w3schools.com/js/js_operators.asp – cogsmos

Odpowiedz

48

Następnie użyj + połączyć stirngs:

console.log("story " + name + " story"); 
+0

Uważam, że w tej odpowiedzi brakuje zamykającego cudzysłowu dla drugiej historii – guribe94

51

console.log zajmuje wiele argumentów, więc wystarczy użyć:

console.log("story", name, "story"); 

Jeśli nazwa jest object lub array następnie przy użyciu wielu argumentów jest lepiej niż konkatenacja. W przypadku łączenia ciągu object lub array w łańcuchu wystarczy zarejestrować typ, a nie zawartość zmiennej.

Ale jeśli nazwa jest po prostu typem pierwotnym, wiele argumentów działa tak samo jak konkatenacja.

+12

lub też "console.log" % s story ', name); ' –

+1

Drobne rzeczy, ale jeśli masz mniej konwencjonalne ustawienia, takie jak Cloud Cloud Parse wysyłający tablicę lub używanie% s nie działa ... więc jesteś zmuszony do łączenia się. –

+0

To wspaniałe @MuhammadUmer, myślałem, że to tylko kwestia Pythona. W języku Python '% s' jest najlepszą metodą łączenia ciągów, ponieważ nie trzeba najpierw zmieniać typu zmiennej. Zastanawiam się, czy to samo w JS? – JasTonAChair

6

można przekazać wiele argumentów, aby się zalogować:

console.log("story", name, "story"); 
1

To zależy od tego, co chcesz.

console.log("story "+name+" story") będzie ciągi razem i wydrukować, że. Dla mnie używam tego, ponieważ łatwiej jest zobaczyć, co się dzieje.

Korzystanie console.log("story",name,"story") jest podobna do konkatenacji jednak wydaje się uruchomić coś takiego:

var text = ["story", name, "story"]; 
console.log(text.join(" ")); 

ten naciska wszystkie elementy w tablicy razem, oddzielone spacją: .join(" ")

21

You można użyć innej metody konsoli:

var name = prompt("what is your name?"); 
console.log(`story ${name} story`); 
+1

Ciągi szablonów są niesamowite. Ale pod warunkiem, że ktoś używa ES6. Ponieważ w przykładzie użyto "var" (może to być ES6 oczywiście), ale nie myśl, że możemy założyć, że tutaj ... – stevenvanc

1

Zarówno console.log("story" + name + "story") i console.log("story", name, "story") działa podobnie dobrze, jak wspomniano we wcześniejszych odpowiedziach.

Nadal będę sugerował posiadanie nawyku: console.log("story", name, "story"), ponieważ, jeśli próba wydrukowania zawartości obiektu, takiego jak obiekt JSON, o numerze "story" + objectVariable + "story" zamieni go na ciąg.

To będzie mieć wyjście takie jak: "story" [object Object] "story".

Tylko dobra praktyka.

10

Podczas korzystania ES6 można też to zrobić:

var name = prompt("what is your name?"); 
console.log(`story ${name} story`); 

Uwaga: Musisz użyć odwrócone, pojedyncze apostrofy `` zamiast „” lub „”, aby zrobić to w ten sposób.

5

Istnieje kilka sposobów pocieszania zmiennej w ciągu znaków.

Metoda 1:

console.log("story", name, "story"); 

korzyści: Jeżeli nazwa jest przedmiotem JSON nie zostaną wydrukowane w "story" [object Object] "story"

Metoda 2:

console.log("story " + name + " story"); 

Metoda 3: Przy użyciu ES6 jak wspomniano powyżej

console.log(`story ${name} story`); 

Korzyść: Nie ma potrzeby dodatkowych lub +

Metoda 4:

console.log('story %s story',name); 

Korzyści: łańcuch staje się bardziej czytelny.

+0

freemarker nie obsługuje trzeciej metody. – egemen

Powiązane problemy