为了账号安全,请及时绑定邮箱和手机立即绑定

未捕获的语法错误:预期的表达式,得到“;” (Javascript 中的幻数)

未捕获的语法错误:预期的表达式,得到“;” (Javascript 中的幻数)

萧十郎 2023-07-29 13:36:07
我有一个问题,以前完全正常工作的 HTML / Javascript 在非常特定的情况下会抛出错误。抛出的错误是:未捕获的语法错误:预期的表达式,得到&ldquo;;&rdquo;记录在浏览器控制台中。此错误仅在第一次加载页面时抛出,即提交表单时。刷新页面总是会导致完美的加载,没有任何形式的控制台错误。javascript 是内联脚本,设置传单地图的地图图标和传单地图的一些变量以及是否使用 Javascript 本地存储的标志:<script>/* Leaflet flags.... there are about 20 of these loaded */    var auxIcon = L.icon({    iconUrl: '/images/map_icons/auxIcon.png',    iconSize:     [18, 24],    iconAnchor:   [0, 24],    popupAnchor:  [10, -20]}); /*@*/var vgsIcon = L.icon({    iconUrl: '/images/map_icons/VGS_30.png',    iconSize:     [25, 30],    iconAnchor:   [0, 30],    popupAnchor:  [10, -15]}); /*@*/var zoomValueLevel = 5; /*@*//* Map zoom level */var useLS = 1; /*@*//* Use local storage for Leaflet map position? */if(useLS === true && localStorage.getItem('zoomLevel')) {    zoomValueLevel = parseInt(localStorage.getItem('zoomLevel'));}......</script>该错误始终表明;出现了错误,并且需要一个表达式。然而,该错误出现在不同的地方,显然是任意的。错误发生在/*@*/上面标记的每个位置,我不知道为什么会发生这种情况,但以前没有发生过。
查看完整描述

1 回答

?
慕码人8056858

TA贡献1803条经验 获得超6个赞

于是我知道了那是什么;

我仔细观察了变量设置;并发现zoomValueLeveluseLSvars 都使用了 JSHint(在 PhpStorm 上)抱怨“幻数”的东西;这些值在某种程度上很特殊,其中变量被赋予不带引号的数值。

所以; 我做了两件事:我将标志值更新为真布尔值而不是 0/1 伪布尔值,因此它的输出实际上是trueor false,并且我将缩放级别设置为与之前相同的数值,但在单引号内。

我不知道为什么这个错误只在第一次加载页面时发生,而在其他时候没有错误,我也不知道为什么这个错误之前没有显示出来,但解决方案似乎是删除 JSHint调用“幻数”并始终将数字括在引号中,并使用布尔标志变量的完整文本表示。

var zoomValueLevel = '5';
var useLS = true;

这立即消除了问题,并且页面现在在加载时不再反馈任何控制台错误。我希望这对某人有用。


查看完整回答
反对 回复 2023-07-29
  • 1 回答
  • 0 关注
  • 81 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信