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