函数参数问题导致的离奇问题
自测无问题的代码提交后,其他人更新后,出现了控制台报错问题。查看后,发现是函数调用参数的问题。
我们都知道,当定义以下JSON对象时,
var obj = {
name: 'aaa',
}
在低版本的IE下是会报错的,在现代浏览器上是不会报错的。
问题
目前我遇到的问题可以总结为,在调用函数时,参数多了个逗号(居然没发现,实在是失误啊。。)。如
show(1, );
function show () {
console.log(111);
}
这样调用函数时,在高版本的浏览器上是不会有问题的,第二个参数是undefined。而在低版本的浏览器上是直接编译报错,无法运行的。
注:测试chrome59和65没有问题,chrome50有问题。
结论
为了代码的兼容性以及稳定性,不出现离奇的问题,我们还是得规范代码书写,jshint等代码检查工具也可用起来。
在看ES6时发现啦,ES2017 允许函数的最后一个参数有尾逗号(trailing comma)。 看来只是chrome提前实现了某些功能。