我正在用JavaScript制作一个简单的游戏,但在故事中需要说出玩家的名字。所以我目前有的是:
var name = prompt("what is your name?");
console.log("story" name "story);
我该如何做第二行?或者还有其他方式可以实现这个目的。在控制台中是否可能将两个console.log();
放在同一行?
我正在用JavaScript制作一个简单的游戏,但在故事中需要说出玩家的名字。所以我目前有的是:
var name = prompt("what is your name?");
console.log("story" name "story);
我该如何做第二行?或者还有其他方式可以实现这个目的。在控制台中是否可能将两个console.log();
放在同一行?
然后使用+
来组合字符串:
console.log("story " + name + " story");
你可以使用另一种控制台方法:
let name = prompt("what is your name?");
console.log(`story ${name} story`);
console.log
可以接受多个参数,因此只需使用:
console.log("story", name, "story");
如果 name 是一个 object
或 array
,那么使用多个参数比连接更好。如果将 object
或 array
连接成字符串,则仅记录变量的类型而不是内容。
但是,如果 name 只是一个原始类型,则多个参数与连接的效果相同。
console.log('故事 %s 故事',name);
- Muhammad Umer%s
是连接字符串的最佳方法,因为您不需要先更改变量类型。我想知道JS是否也是如此? - JasTonAChair有几种方法可以从字符串中提取变量。
方法1:
console.log("story", name, "story");
好处:如果名称是 JSON 对象,它将不会打印为 "story" [object Object] "story"
方法二:
console.log("story " + name + " story");
方法三:使用上述提到的ES6
console.log(`story ${name} story`);
好处:无需额外的 , 或 +
方法 4:
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")
会将字符串连接在一起并打印出来。对我来说,我使用这个方法是因为它更容易看出正在发生什么。console.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用于格式化数字