javascript - 两个相同的字符串如何彼此不相等?

标签 javascript

有人给我发了这封邮件:

为什么这两个都警告为 false?

alert('a‌' == 'a');
alert('a‌' === 'a');

这是一个演示

JSFiddle DEMO

最佳答案

每个的第一个a实际上并不是一个简单的a。如果您将光标放在它后面并按下退格键,您将删除“某物”,然后它返回 true

我复制了你的 a 字符串,这是我在运行这段代码时得到的:

$a='a‌';
var_dump($a);

string(4) "a‌"

看看这里有什么问题?字符串长度为4。

此外,这:

echo base64_encode($a);

..返回:

YeKAjA==

对于带有字母a的简单字符串,它应该只是YQ==

额外的字符称为 "ZERO WIDTH NON-JOINER" .

关于javascript - 两个相同的字符串如何彼此不相等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8914902/

相关文章:

javascript - Angular Translate - 获取翻译表

递归 Hook 时 Javascript 丢失上下文

javascript - ng-disable 按钮函数永远不会被调用

javascript - Bootstrap 4 在折叠中更改图标

Javascript 模块设计

javascript - 在字符串的第一个数字前添加一个空格

javascript - 如何将对象中的每个值写入文本文件中的每一行

javascript - 如何通过具有数组行的第一项的值来删除/删除javascript数组中的一行?

javascript - 切换 tr 中 td 的 Jquery 设置值

Javascript 通过键减少对象