javascript - 比较字符串时,JavaScript 是否从比较它们的长度开始?
问题描述
我想知道,在比较两个(可能很大)字符串时,JavaScript 是否在内部开始比较它们的长度,然后再循环字符。
如果不是,那是否意味着做一些类似的事情
if (string1.length !== string2.length || string1 !== string2)
// do something if data changed
应该会赢得时间,对吧?(我假设字符串的只读length
属性是在设置字符串时计算的,而不是在询问时计算的;不确定是否确实如此)
对于上下文,我正在处理大量字符串,因为我懒惰地 JSON.stringifying 从某些 API 接收到的对象数组(仅比较最新的元素可能会更好,但这个问题更多的是出于好奇,请注意字符串我会比较会是巨大的^^)
相关参考资料?
https://javascript.info/comparison
编辑
感谢@RobG 在评论中将我链接到 ECMA-262 的SameValueNonNumber。
在步骤定义中,步骤 5 是
SameValueNonNumber ( x, y )
5.如果Type(x)是String,那么如果x和y是完全相同的代码单元序列(相同的长度和对应索引处的相同代码单元),返回true;否则,返回假。
我认为这回答了这个问题
解决方案
推荐阅读
- c++ - 如果以下行不包含决策或分支,则 GDB 无法跨过函数
- php - 使用 PHP 在 Google 应用引擎中进行连接检查
- c# - 如何在 vsix 可扩展性项目中自定义菜单项按钮的位置?
- python - 如何在 django admin 中制作与模型无关的自定义输入文件?
- python - 如何使用 PYTHON 中的 scikit-learn 模块为神经网络编写多输入 - 1 输出?
- html - Jekyll 包含转义结束标签?
- rotation - 像 Blender 的平滑 3d 场景旋转
- ios - 如何检查 String 对象是否为链接?
- file - Blazor 文件安全性
- excel - 尝试分配字体属性时应用程序定义或对象定义的错误