今天一个朋友在开发的时候,遇到了一个小问题,但是他自己检查代码,看了好几遍,没有发现哪里写错了,之后和其他人请教了这个问题,让其他人帮他跑一下这一段代码,但都跑不起来。
后续我看到这个输出结果,因为是他写的代码没有添加;
导致了{}()
连在了一起,导致了函数调用,但它不是函数,所以就报错了。
var flags= 'stopOnFalse'
var res = {}
(flags.match(/\S+/g) || []).forEach(function(flag) {
res[flag] = true
})
输出结果:
因为{}()属于调用这个对象 但是对象不是函数,所以报错了,在写代码的时候一定要在特定位置加上;
使其代码闭合,以免导致不必要的报错产生。
正确写法:
var flags= 'stopOnFalse'
var res = {};
//用于在空白处拆分
(flags.match(/\S+/g) || []).forEach(function (flag) {
res[flag] = true
})