更新旧代码时遇「Missing parenthesis before function parameters」报错求助
问题分析与解决
报错的直接原因是你调用gmtToFloat函数时,错误地用大括号{}包裹了参数:
gmtToFloat({Data.Session.utc})
在JavaScript语法里,函数参数不需要用大括号包裹。你写的{Data.Session.utc}是无效的对象字面量(合法对象需要键值对形式,比如{utc: Data.Session.utc}),这会让JS引擎无法正确识别函数参数的起始位置,从而抛出「函数参数前缺少左括号」的错误。
修正方法很简单,去掉参数外的大括号,直接传递变量即可:
function gmtToFloat(tc) { var timecode = tc.toString(); // 这里建议加上var,避免全局变量污染 var hhd = parseFloat(timecode.slice(-6, -3)); var mmd = parseFloat(timecode.slice(-2)) / 60; return (hhd + mmd); } var diff = gmtToFloat(Data.Session.utc) - gmtToFloat(Data.Session.ctc); diff;
另外补充一个细节:原代码里的timecode没有声明就直接赋值,会自动成为全局变量,这可能引发潜在的bug,建议加上var(适配旧环境)或者let/const来声明变量。
内容的提问来源于stack exchange,提问作者aquamelli
相关产品推荐
相关产品推荐

