在database.js里正则匹配的时候为什么会加上~这个符号

来源:4-3 通过 mongoose 建模全局票据 access_token

coldplay4

2017-09-10

fs.readdirSync(models)
 .filter(file => ~file.search(/^[^\.].*\.js$/))
 .forEach(file => require(resolve(models, file)))

写回答

2回答

NickChu

2017-10-01

~是js中的位运算符(bitwise operator),意思是按位取反,~(x) = -x -1,search方法找不到匹配值时返回-1,~(-1)= 0(这里自动转换为false)。所以明白了吧。用bitwise operator可以提高search的效率,但这种“微优化”会影响代码的可读性,所以js代码中是否使用bitwise operator是有争议的。

1
1
coldplay4
非常感谢!
2017-10-17
共1条回复

wlj163

2017-09-15

我也不知道,Mark下

0
0

开发微信全家桶项目Vue/Node/MongoDB高级技术栈全覆盖

Nuxt/Vue SSR + Koa2 跨栈开发微信公众号+小程序

989 学习 · 401 问题

查看课程