判断字符串是否以特定字符开头,字符比较 vs 字符unicode比较 的区别?

作者站长头像
站长
· 阅读数 6

看Vue源码时发现了这个问题

// Vue 2.0 src/core/util/lang.js

/**
 * Check if a string starts with $ or _
 */
export function isReserved(str: string): boolean {
    const c = (str + '').charCodeAt(0)
    return c === 0x24 || c === 0x5F
}

如题所述,和 c[0] === '$' || c[0] === '_' 相比

回复
1个回答
avatar
test
2024-06-30

从功能上来说,没有差别;从性能上来说,差别也是微乎其微

一般使用 unicode 比较,是为了 多语言 环境下的更全面和准确的字符匹配能力。vue 虽然在国外相对 react 流量少了点,但毕竟是个国际化框架,在涉及编码的问题上也会综合考虑

unicode 编码支持大部分语言的字符,自然容易成为开源项目的首选编码

对于普通开发来说,直接进行字符串对比就行了,怎么简单怎么来是最好的方式

回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容