javascript - 多个 \t 转义序列看起来与单个 \t 有何不同?
问题描述
在我的环境中console.log("abcd\tefgh")
输出“abcd efgh”,注意我看到的单个空格。
使用两个 ( \t
)console.log("abcd\t\tefgh")
时,此输出带有两个选项卡。
为什么会这样?
解决方案
听起来您对选项卡的实际含义有一个普遍的误解。
这不完全是你的错:一些纯文本编辑器(尤其是用于编程的编辑器)实际上并没有“正确”实现选项卡,许多 IDE 甚至默认重新映射键盘Tab ↹</kbd> key to some number of normal spaces (ugh); but, if you spend any length of time with a word processor (or Notepad++!) then you'll soon get used to the real deal.
标签不是“插入到文本中的一些固定数量的空间”:
abcd fegh
<---->
tab
abcd fegh
<----><---->
tab
^^^ complete lies
它是“将后续文本排到下一个制表位”:
| | | | | (tab stops as configured in the current text view)
abcd fegh
<>
tab
abcd fegh
<><---->
tab tab
^^^ sheer genius truth
因此,如果下一个制表位不远,您将不会从第一个制表位获得太多(如果有的话!)增加空间......但是您的第二个制表位必须转到下一个制表位,这在所有情况下都可能沿线至少有一段距离:
| | | | |
abcd fegh
≷
tab
abcd fegh
≷<--->
tab tab
如果它有助于您记住,“tab”是“tabulation”的缩写,就像在tables中一样。这就是穴居人时代人们在列中排列文本的方式。
或者,仔细查看键盘上的键。是吗→</kbd>? No, it's ⇥</kbd>. It's movement towards a fixed, columnal point.
tl;博士:一切都很好。这就是标签的工作方式。
推荐阅读
- python - 方括号后跟大括号在类方法中是什么意思?
- java - 将 SortedSet 转换为以键为迭代器位置的 TreeMap 或 ImmutableMap
- mysql - 插件“根”未加载
- javascript - 使用 javascript 内联显示
- node.js - 使用服务帐户进行 Google Sheets Api 授权
- python - 如何“优雅地”使用/存储具有属性的对象?
- python - TypeError:函数构建代码之外的操作正在传递一个图张量
- powershell - 无法执行以“WITH”而不是“SELECT”开头的 SQL 查询
- ios - 展开的可选和非可选值产生“线程 1:致命错误:在隐式展开可选值时意外发现 nil”
- java - GameStateManager 和屏幕