猿问

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

我有一个问题,以前完全正常工作的 HTML / Javascript 在非常特定的情况下会抛出错误。


抛出的错误是:


未捕获的语法错误:预期的表达式,得到“;”


记录在浏览器控制台中。此错误仅在第一次加载页面时抛出,即提交表单时。刷新页面总是会导致完美的加载,没有任何形式的控制台错误。


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>

该错误始终表明;出现了错误,并且需要一个表达式。然而,该错误出现在不同的地方,显然是任意的。


错误发生在/*@*/上面标记的每个位置,


我不知道为什么会发生这种情况,但以前没有发生过。


萧十郎
浏览 83回答 1
1回答

慕码人8056858

于是我知道了那是什么;我仔细观察了变量设置;并发现zoomValueLevel和useLSvars 都使用了 JSHint(在 PhpStorm 上)抱怨“幻数”的东西;这些值在某种程度上很特殊,其中变量被赋予不带引号的数值。所以;&nbsp;我做了两件事:我将标志值更新为真布尔值而不是 0/1 伪布尔值,因此它的输出实际上是trueor&nbsp;false,并且我将缩放级别设置为与之前相同的数值,但在单引号内。我不知道为什么这个错误只在第一次加载页面时发生,而在其他时候没有错误,我也不知道为什么这个错误之前没有显示出来,但解决方案似乎是删除 JSHint调用“幻数”并始终将数字括在引号中,并使用布尔标志变量的完整文本表示。var&nbsp;zoomValueLevel&nbsp;=&nbsp;'5'; var&nbsp;useLS&nbsp;=&nbsp;true;这立即消除了问题,并且页面现在在加载时不再反馈任何控制台错误。我希望这对某人有用。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答