调用slider函数报Uncaught ReferenceError: slidesWrapper未定义问题求助
报错成因
- 核心问题是
slidesWrapper未声明就直接赋值使用:你代码第一行的const变量声明块在current = document.querySelector(currentCounter);位置已经用分号结束,后续的slidesWrapper、width、slideField三个变量都没有加const/let/var声明关键字。 - 语法书写问题:你给这三个变量赋值时额外包裹了括号、缩进不规范,会被JS引擎识别为独立的赋值表达式。如果你的代码开启了严格模式(
'use strict'),未声明变量直接赋值会直接抛出ReferenceError;即使未开启严格模式,也会意外创建全局变量,留下其他逻辑隐患。
修复方案
将三个未声明的变量补充到const声明列表中即可,修正后的代码如下:
const slides = document.querySelectorAll(slide), slider = document.querySelector(container), prev = document.querySelector(prevArrow), next = document.querySelector(nextArrow), total = document.querySelector(totalCounter), current = document.querySelector(currentCounter), slidesWrapper = document.querySelector(wrapper), width = window.getComputedStyle(slidesWrapper).width, slideField = document.querySelector(field);
如果后续需要修改width等变量的值,把声明关键字从const换成let即可。
内容的提问来源于stack exchange,提问作者user15723908
相关产品推荐
相关产品推荐

