🧠 TypeScript 字符串比较为什么“看起来一样却不相等”?一文搞懂隐形差异!
在开发中,明明两个字符串“看起来一模一样”,但 ==
或 ===
却返回了 false
,这到底是怎么回事?🤯
别慌,这种现象往往源于不可见字符、Unicode 编码差异、全角与半角混用等问题。本文将通过典型示例,带你彻底搞懂这些字符串“陷阱”,并教你如何精准排查!
🔍 一、不可见字符或空格差异
有些字符在视觉上看不出来,但它们确实存在,例如:
- 零宽空格(
\u200B
)
- 多余的空格、制表符(
\t
)
✅ 示例:
const str1 = 'hello';
const str2 =