为什么源码中采用了 ASCII码 来判断?

来源:2-2 new Vue 发生了什么

Arey_jy

2018-06-30

```

/**

* Check if a string starts with $ or _

*/

export function isReserved (str: string): boolean {

const c = (str + '').charCodeAt(0)

// ASCII码

return c === 0x24 || c === 0x5F

}

```

使用 字符串直接比较,性能不是更快吗?作者为什么要这样处理?而且语义化也不好。

http://img.mukewang.com/szimg/5b3763680001407903680279.jpg

写回答

1回答

ustbhuangyi

2018-06-30

性能差别不大,单次比较没有意义,你可以用字符串去实现同样的函数去循环 10000 次调用,比对时间。而且你这个是跑在 chrome 浏览器的,JS 引擎不同可能结果也不一样,所以你的更快结论是没有说服力的。至于为什么一定要这么写,我也并不清楚了。

0
1
Arey_jy
好的?,谢谢黄老师
2018-06-30
共1条回复

Vue.js 源码深入解析 深入理解Vue实现原理

全方位讲解 Vue.js 源码,进阶高级工程师

4984 学习 · 1037 问题

查看课程