Jak mogę dodać zmienną do console.log?


Tworzę prostą grę JavaScript, ale w historii potrzebowałem jej do nazwania graczy. więc na razie mam tylko jedną:
var name = prompt("what is your name?");console.log("story" name "story);

jak mogę zrobić drugą linię? czy jest inny sposób, aby to zrobić. Czy można mieć 2
console.log ();
w 1 wierszu konsoli?
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Następnie użyj
+
, aby połączyć ciągi:
console.log("story " + name + " story");
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

console.log
przyjmuje wiele argumentów, więc po prostu użyj:
console.log("story", name, "story");

Jeśli

name

to
obiekt
lub
tablica
, użycie wielu argumentów jest lepsze niż konkatenacja. Jeśli łączysz
obiekt
lub
tablicę
w łańcuch, po prostu rejestrujesz typ, a nie zawartość zmiennej.
Ale jeśli

Nazwa

jest tylko typem pierwotnym, wtedy wiele argumentów działa tak samo, jak konkatenacja.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Możesz użyć innej metody konsoli:
var name = prompt("what is your name?");
console.log(`story ${name} story`);
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Istnieje kilka sposobów na konsolidację zmiennej w ciągu.
Metoda 1:
console.log("story", name, "story");

Zaleta: jeśli nazwa jest obiektem JSON, nie zostanie wydrukowana jako
„story” [object Object] „story”
Metoda 2:
console.log("story " + name + " story");

Metoda 3: używając ES6 jak powyżej
console.log(`story ${name} story`);

Zaleta: nie ma potrzeby stosowania dodatkowych lub +
Metoda 4:
console.log('story %s story',name);

Zaleta: ciąg staje się bardziej czytelny.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Korzystając z ES6, możesz również zrobić to:
var name = prompt("what is your name?");
console.log(`story ${name} story`);

Uwaga: Aby to zrobić, musisz użyć znaku odwrotnego `zamiast" "lub".
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Możesz przekazać wiele argumentów, aby wejść:
console.log("story", name, "story");
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Wszystko zależy od tego, czego chcesz.
console.log("story "+name+" story")
połączy się
https://en.wikipedia.org/wiki/Concatenation
wiersze razem i wydrukuje to. W moim przypadku używam tego, ponieważ łatwiej jest mi zobaczyć, co się dzieje.
Używanie
console.log ("historia", nazwa, "historia")
przypomina konkatenację, jednak wygląda na to, że działa mniej więcej tak:
var text = ["story", name, "story"];
console.log(text.join(" "));

W tym przypadku wszystkie elementy tablicy są łączone razem, oddzielone spacją:
.join („”)
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

% j
działa tylko dla Node.js.
% j
konwertuje wartość na ciąg JSON i wstawia ją.
console.log('%j new messages for', 7, 'john')
// 7 new messages for john


Więcej szczegółów na temat zastępczego ciągu:
>


Lekarze:
>
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Zarówno
console.log („historia” + nazwa + „historia”)
, jak i
console.log („historia”, nazwa, „historia”)
działają dobrze, jak wspomniano w poprzednie odpowiedzi.
Nadal sugerowałbym, aby mieć nawyk
console.log ("historia", nazwa, "historia")
, ponieważ jeśli próbujesz wydrukować zawartość obiektu jako plik json obiektu, posiadanie
„story” + objectVariable + „story”
konwertuje je na ciąg.
Wynik będzie wyglądał następująco:
"story" [obiekt obiekt] "story"
.
Po prostu dobra praktyka.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Możesz także użyć stylu formatowania argumentów printf. Jest dostępny przynajmniej w Chrome, Firefox/Firebug i node.js.
var name = prompt("what is your name?");console.log("story %s story", name);

Obsługuje również% d do formatowania liczb
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Możesz użyć odwrotnego ukośnika, aby umieścić historię i nazwy graczy w jednym wierszu.
var name = hint ("jak masz na imię?");
console.log("story"\name\"story");

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się