三重等号 (===) 在 AssemblyScript 中的行为是否不同?
Does the triple equal sign (===) behave differently in AssemblyScript?
我使用的供应商将他们的软件与 AssemblyScript 打包在一起。他们提供了一些基础设施,我在其基础上进行构建。
不小心,我在一个对十六进制字符串执行相等性检查的函数中将我的双等号(“==”)更改为三等号(“===”)。我花了几个小时确保检查的值确实相等并且具有相同的大小写敏感性,但是没有什么可以使 if 语句进入我期望它进入的分支,除了返回到“==”。
所以我来到这里寻求帮助。 “===”与 AssemblyScript 中的“==”有何不同?是语言本身的一些怪癖还是供应商的解析器?
是的。在 AssemblyScript 中,三重相等(“===”)比较原始引用并跳过重载运算符(“==”)。参见 docs。
有人提议避免这种非标准的 TypeScript 行为。您可以查看并点赞 this issue
我使用的供应商将他们的软件与 AssemblyScript 打包在一起。他们提供了一些基础设施,我在其基础上进行构建。
不小心,我在一个对十六进制字符串执行相等性检查的函数中将我的双等号(“==”)更改为三等号(“===”)。我花了几个小时确保检查的值确实相等并且具有相同的大小写敏感性,但是没有什么可以使 if 语句进入我期望它进入的分支,除了返回到“==”。
所以我来到这里寻求帮助。 “===”与 AssemblyScript 中的“==”有何不同?是语言本身的一些怪癖还是供应商的解析器?
是的。在 AssemblyScript 中,三重相等(“===”)比较原始引用并跳过重载运算符(“==”)。参见 docs。
有人提议避免这种非标准的 TypeScript 行为。您可以查看并点赞 this issue