# 无法使用 console.log 记录字符串？

**URL:** https://meta.discourse.org/t/cannot-log-a-string-with-console-log/162960
**Category:** Development
**Created:** [2020年九月3日 19:41 UTC](https://meta.discourse.org/t/cannot-log-a-string-with-console-log/162960 "2020-09-03T19:41:20Z")
**Posts on this page:** 5
**Page:** 1

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2020年九月3日 19:41 UTC](https://meta.discourse.org/t/cannot-log-a-string-with-console-log/162960/1 "2020-09-03T19:41:20Z")

</div>

我不明白为什么这段代码没有按我的预期工作。它在 w3schools 上似乎能正常运行。

### `head_tag.html`

```plaintext
<script type="text/discourse-plugin" version="0.8">

  const user = api.getCurrentUser();
  const { setDefaultHomepage } = require('discourse/lib/utilities');

  console.log("Primary group: " + user.primary_group_name);
  console.log('full map: ' + settings.group_homepage_map);
  if (settings.group_homepage_map && settings.group_homepage_map_enabled) {
      const map = settings.group_homepage_map.split("|");
      var two = map[1];
      console.log("Hello world!");
      console.log("hello? " + map);
      console.log("my map zero: " + map[0]);
      console.log(map[0]);
      console.log(map[1]);
      console.log(String('some text'));
      console.log("wwf: " + map[0]);
      console.log('two' + map[1] + 'one');
      console.log("first group: " + map[0].split(',')[0]);
      console.log("first url: " + map[0].split(',')[1]);
      console.log("second: " + map[1]);
      console.log("thing: ", map[0].split(",")[1]);
    }
  if (settings.home_url_override && settings.home_url_override_group.length == 0 ) {
    setDefaultHomepage(settings.home_url_override);
  }

</script>

```

JavaScript 控制台中只显示了以下内容：

```plaintext
Primary group: lastone
full map: lastone,c/transcription/5|testergroup,latest
hello? lastone,c/transcription/5,testergroup,latest
my map zero: lastone,c/transcription/5
lastone,c/transcription/5
wwf: lastone,c/transcription/5
first group: lastone

```

看来我无法只输出一个字符串，也无法访问数组的 `[1]` 项。

诸神恐怕是疯了。

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [2020年九月3日 20:23 UTC](https://meta.discourse.org/t/cannot-log-a-string-with-console-log/162960/2 "2020-09-03T20:23:00Z")

</div>

您是想按 `|` 分割吗？为什么不使用 `,`？

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2020年九月3日 20:38 UTC](https://meta.discourse.org/t/cannot-log-a-string-with-console-log/162960/3 "2020-09-03T20:38:37Z")

</div>

这是一个从群组到其目标主页的映射。

```
     description: "group,c/cat/5|group2,c/cat2/6"

```

因此，我按 `|` 分割以获取每一对，然后再按 `,` 分割这些对，得到：

- group → c/cat/5
- group2 → c/cat2/6

但这并不能解释为什么 `console.log("Hello world!");` 没有输出文本……

---

<div class="post-metadata">

### Author: ![justin](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/justin/32/157614_2.png) [@justin](https://meta.discourse.org/u/justin)
#### Post date: [2020年九月6日 01:04 UTC](https://meta.discourse.org/t/cannot-log-a-string-with-console-log/162960/4 "2020-09-06T01:04:01Z")

</div>

那说明代码没有执行。如果你在 if 语句之外，`console.log` 会执行吗？

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2020年九月6日 01:41 UTC](https://meta.discourse.org/t/cannot-log-a-string-with-console-log/162960/5 "2020-09-06T01:41:47Z")

</div>

谢谢，Justin！我会试试看，但同一代码块中的许多日志仍在被调用。而且，记录一个设置字符串不会导致程序终止，但将字符串与变量中的字符串拼接后却会触发。
