javascript - JavaScript:打印一些额外的字符
问题描述
我创建了一个生成器函数。
function* ask() {
const name = yield "What is your Name.?";
const sport = yield "What is your favorite sports.?";
return `${name}'s favorite sport is ${sport}`;
}
const it = ask();
console.log(it.next());
console.log(it.next("Ng Sharma"));
console.log(it.next("Cricket"));
输出
当此代码在 Node.js 中运行时。
{ value: 'What is your Name.?', done: false }
{ value: 'What is your favorite sports.?', done: false }
{ value: 'Ng Sharma\'s favorite sport is Cricket', done: true }
当此代码在 Google chorme 中运行时。
{value: "What is your Name.?", done: false}
{value: "What is your favorite sports.?", done: false}
{value: "Ng Sharma's favorite sport is Cricket", done: true}
为什么我有这些额外的“\”斜线,我该如何摆脱它们?
解决方案
为什么我有这些额外的“\”斜线,我该如何摆脱它们?
由于您要输出完整的结果对象,因此您将获得 Node 的默认对象表示,它在字符串周围使用单引号。由于它在字符串周围使用单引号,因此字符串中的单引号(撇号)用反斜杠转义以指示它们不是字符串的结尾(就像您在单引号中编写字符串时所做的那样)。反斜杠实际上不在字符串中。Chrome 在字符串值周围使用双引号,而不是单引号,因此无需转义'
.
如果您只是输出value
,它将打印字符串内容,而不是从生成器中打印出完整的结果对象:
function* ask() {
const name = yield "What is your Name.?";
const sport = yield "What is your favorite sports.?";
return `${name}'s favorite sport is ${sport}`;
}
const it = ask();
console.log(it.next().value);
console.log(it.next("Ng Sharma").value);
console.log(it.next("Cricket").value);
输出:
你叫什么名字。? 你最喜欢的运动是什么。? Ng Sharma 最喜欢的运动是板球
推荐阅读
- react-native - 在 React Native 项目中集成哨兵不起作用 drop 错误日志
- php - array_key_exists(): 错误 Guzzle
- asp.net-mvc - 如何在 MVC 中访问存储过程的结果
- delphi - Delphi中删除控件的默认命名
- java - JavaFX 8 | TextField 只允许数字和小数
- python-3.x - 解析xml时如何在python中获取从根到特定元素的xpath
- sql - SQLite - 具有多个连接的复杂 SELECT
- angularjs - 使用新数据问题重绘数据表
- javascript - 显示日期是一个 md-datepicker 字段
- laravel - Laravel 取消创建对象