我正在用JavaScript制作一个简单的游戏,但在故事中我需要它来说出玩家的名字。所以到目前为止我所拥有的是:
var name = prompt("what is your name?");
console.log("story" name "story);
我该如何做第二行?或者还有另一种方法可以做到这一点。是否可以在控制台中的1行上有2个console.log();
?
答案 0 :(得分:65)
然后使用+
组合字符串:
console.log("story " + name + " story");
答案 1 :(得分:65)
console.log
需要多个参数,所以只需使用:
console.log("story", name, "story");
如果名称是object
或array
,则使用多个参数优于连接。如果将object
或array
连接到字符串中,则只需记录类型而不是变量的内容。
但如果 name 只是一个原始类型,那么多个参数的作用与连接相同。
答案 2 :(得分:36)
您可以使用其他控制台方法:
var name = prompt("what is your name?");
console.log(`story ${name} story`);
答案 3 :(得分:21)
有几种方法可以在字符串中整理变量。
方法1:
console.log("story", name, "story");
好处:如果name是JSON对象,则不会将其打印为"story" [object Object] "story"
方法2:
console.log("story " + name + " story");
方法3:如上所述使用ES6时
console.log(`story ${name} story`);
好处:不需要额外的,或+
方法4:
console.log('story %s story',name);
好处:字符串变得更易读。
答案 4 :(得分:18)
使用ES6时,您也可以这样做:
var name = prompt("what is your name?");
console.log(`story ${name} story`);
注意:你需要使用反引号``而不是""或者''这样做。
答案 5 :(得分:6)
您可以将多个参数传递给log:
console.log("story", name, "story");
答案 6 :(得分:2)
这取决于你想要什么。
console.log("story "+name+" story")
将concatenate字符串组合在一起并打印出来。对我来说,我使用它是因为它更容易看到发生了什么。
使用console.log("story",name,"story")
类似于连接,但似乎运行如下:
var text = ["story", name, "story"];
console.log(text.join(" "));
这会将数组中的所有项目推到一起,用空格分隔:.join(" ")
答案 7 :(得分:1)
console.log("story" + name + "story")
和console.log("story", name, "story")
工作正常,如前面的答案所述。
我仍然建议养成console.log("story", name, "story")
的习惯,因为如果尝试打印对象内容(如json对象),"story" + objectVariable + "story"
会将其转换为字符串。
这将输出如下:"story" [object Object] "story"
。
这是一个很好的做法。
答案 8 :(得分:0)
您还可以使用printf样式的格式设置参数。至少在Chrome,Firefox / Firebug和node.js中可用。
var name = prompt("what is your name?");
console.log("story %s story", name);
它还支持%d格式化数字
答案 9 :(得分:0)
%j
仅适用于Node.js。 %j
将值转换为JSON字符串并将其插入。
console.log('%j new messages for', 7, 'john')
// 7 new messages for john
答案 10 :(得分:-2)
您可以使用反斜杠将故事和玩家名称包含在一行中。
var name = prompt("你的名字是什么?"); 的console.log("故事" \名\"故事&#34);