Làm cách nào để thêm một biến vào console.log?


81

Tôi đang tạo một trò chơi đơn giản bằng JavaScript nhưng trong câu chuyện, tôi cần nó nói tên người chơi. vì vậy những gì tôi có cho đến nay là:

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

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

làm thế nào để làm dòng thứ hai? hoặc có một cách khác tôi có thể làm điều này. Có thể có 2 console.log();trên 1 dòng trong bảng điều khiển?


Bạn chỉ muốn nối các chuỗi lại với nhau? Bạn nghĩ gì về "làm dòng thứ hai"?
cogsmos

^ cogsmos, bây giờ không thành vấn đề, câu hỏi của tôi đã được trả lời
Bradley McInerney

Rất vui vì bạn đã tìm ra nó. Trong JavaScript, dấu + có thể được sử dụng cho số học và cũng để nối hai chuỗi lại với nhau (còn được gọi là nối). Hãy xem ở đây để biết thêm một số chi tiết: w3schools.com/js/js_operators.asp
cogsmos

Câu trả lời:


84

Sau đó, sử dụng +để kết hợp các chuỗi:

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

75

console.log nhận nhiều đối số, vì vậy chỉ cần sử dụng:

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

Nếu tên là một objecthoặc một arraythì sử dụng nhiều đối số sẽ tốt hơn là nối. Nếu bạn nối một objecthoặc arrayvào một chuỗi, bạn chỉ cần ghi loại chứ không phải nội dung của biến.

Nhưng nếu tên chỉ là một kiểu nguyên thủy thì nhiều đối số hoạt động giống như nối.


19
hoặc cũngconsole.log('story %s story',name);
Muhammad Umer

1
Điều nhỏ nhặt, nhưng nếu bạn đang ở trong một cài đặt ít thông thường hơn như Mã đám mây của Parse thì việc gửi một mảng hoặc sử dụng% s không hoạt động .. vì vậy bạn buộc phải nối.
Derek Lucas,

Thật tuyệt vời @MuhammadUmer, tôi nghĩ đó chỉ là một thứ Python. Trong Python %slà phương pháp tốt nhất để nối các chuỗi, vì bạn không cần phải thay đổi kiểu biến trước. Tôi tự hỏi nếu nó giống nhau trong JS?
JasTonAChair

59

Bạn có thể sử dụng một phương pháp bảng điều khiển khác:

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

4
Chuỗi mẫu thật tuyệt vời. Nhưng với điều kiện ai đó sử dụng ES6. Vì trong ví dụ "var" được sử dụng (tất nhiên có thể là ES6) nhưng đừng nghĩ rằng chúng ta có thể giả định rằng ở đây ...
therebelcoder

39

Có một số cách để an ủi biến trong một chuỗi.

Phương pháp 1:

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

Lợi ích: nếu tên là một đối tượng JSON, nó sẽ không được in dưới dạng "story" [object Object] "story"

Phương pháp 2:

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

Phương pháp 3: Khi sử dụng ES6 như đã đề cập ở trên

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

Lợi ích: Không cần thêm, hoặc +

Phương pháp 4:

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

Lợi ích: chuỗi trở nên dễ đọc hơn.


@egemen Freemarker phải làm gì với nó? Đó là một mẫu ECMAscript 2015 theo nghĩa đen
Nico Van Belle

1
Đây là câu trả lời tốt nhất.
Stephen Collins

19

Khi sử dụng ES6, bạn cũng có thể làm điều này:

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

Lưu ý: Bạn cần sử dụng dấu gạch ngược `` thay vì "" hoặc '' để làm như thế này.


6

Bạn có thể chuyển nhiều args để ghi nhật ký:

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

3

2

Nó phụ thuộc vào những gì bạn muốn.

console.log("story "+name+" story") sẽ nối các chuỗi với nhau và in ra. Đối với tôi, tôi sử dụng điều này vì nó dễ dàng hơn để xem những gì đang diễn ra.

Việc sử dụng console.log("story",name,"story")tương tự như nối tuy nhiên, nó dường như chạy một cái gì đó như sau:

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

Điều này đang đẩy tất cả các mục trong mảng lại với nhau, được phân tách bằng dấu cách: .join(" ")


1

Cả hai console.log("story" + name + "story")console.log("story", name, "story")hoạt động tốt như đã đề cập trong các câu trả lời trước đó.

Tôi vẫn sẽ đề nghị có thói quen console.log("story", name, "story"), bởi vì, nếu cố gắng in nội dung đối tượng, chẳng hạn như đối tượng json, có "story" + objectVariable + "story"sẽ chuyển đổi nó thành chuỗi.

Điều này sẽ có kết quả như sau: "story" [object Object] "story".

Chỉ là một thực hành tốt.


Vậy tại sao bạn lại đề xuất "," một. Vì nó sẽ chỉ in [đối tượng đối tượng]. Hầu hết, chúng tôi muốn phiên bản chuỗi sẽ nhận được frmo "+". Đúng?
P Satish Patro

0

Bạn cũng có thể sử dụng kiểu printf của các đối số định dạng. Nó có sẵn trong ít nhất Chrome, Firefox / Firebug và node.js.

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

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

Nó cũng hỗ trợ% d để định dạng số


-2

Bạn có thể sử dụng dấu gạch chéo ngược để bao gồm cả câu chuyện và tên người chơi trong một dòng.

var name = prompt ("tên bạn là gì?"); console.log ("story" \ name \ "story");

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.