180 if (!e.target.closest(".page-nav__item-sublist") && n.mobileSubmenu) {
181 if (e.target.classList.contains("page-nav__link") && e.target.classList.contains("active")) return;
182 document.getElementsByClassName("page-nav__list--menu")[0].classList.remove("active");
183 var t = document.querySelectorAll(".page-nav__link--has-submenu.active");184 return t.length && t[0].classList.remove("active"), void(n.mobileSubmenu = !1)
185 }
186 }), n.init()
176 document.documentElement.classList.remove("page-nav__destinations--active", "page-nav__tips--active", "page-nav__planning--active"), n.subMouseover = !1, document.getElementsByClassName("page-nav")[0].classList.contains("page-nav--sticked--active") || document.getElementsByClassName("page-nav")[0].classList.remove("page-nav--small", "page-nav--sticked", "page-nav--sticked--visible")
177 }
178 };
179 document.addEventListener("click", function(e) {180 if (!e.target.closest(".page-nav__item-sublist") && n.mobileSubmenu) {
181 if (e.target.classList.contains("page-nav__link") && e.target.classList.contains("active")) return;
182 document.getElementsByClassName("page-nav__list--menu")[0].classList.remove("active");
169 })
170 })
171 },
172 largeSubmenuNav: function(e) {173 n.itemWithSubmenu != e && n.closeLargeSubmenuNav(), n.itemWithSubmenu = e, document.documentElement.classList.contains("page-nav__" + e + "--active") || document.documentElement.classList.add("page-nav__" + e + "--active")
174 },
175 closeLargeSubmenuNav: function() {
164 n.closeLargeSubmenuNav(), document.documentElement.classList.remove("page-nav--bg-active"), n.backgroundActive = !1
165 })
166 }), [].forEach.call(n.hasSubmenu, function(e) {
167 e.addEventListener("click", function(e) {168 if (window.innerWidth < 980) return e.preventDefault(), !1
169 })
170 })
163 }), e.addEventListener("mouseleave", function(e) {
164 n.closeLargeSubmenuNav(), document.documentElement.classList.remove("page-nav--bg-active"), n.backgroundActive = !1
165 })
166 }), [].forEach.call(n.hasSubmenu, function(e) {167 e.addEventListener("click", function(e) {
168 if (window.innerWidth < 980) return e.preventDefault(), !1
169 })
Two variables can have the same name if they're declared in different scopes.
In the example below, the parameter x
is said to "shadow" the variable x
declared above it.
The outer x
can no longer be accessed inside the sum
function.
const x = 1
function add(x, y) {
return x + y
}
While shadowing does not cause any problems most of the time, it does make the code harder to read and understand. We highly recommend against shadowing. However, if you want to shadow some variable name and don't want DeepSource to flag it, add a skipcq comment alongside an explanation:
const x = 1
function add(x, y) { // skipcq: JS-0123 - `x` can be safely shadowed
return x + y
}
If you want to disable this issue project-wide, you can add it to the list of disabled issues in the project dashboard.
const file = "data.txt"
function readFile(file) {
// The parameter `file` shadows the toplevel variable `file`.
if (fs.existsSync(file)) {
return fs.readFileSync(file)
}
return null
}
// Prefer variable names that are distinct and convey as much
// meaning as possible.
const dataFile = "data.txt"
function readFile(filePath) {
if (fs.existsSync(filePath)) {
return fs.readFileSync(filePath)
}
return null
}
Alternatively:
const file = "data.txt"
function readFile(file) { // skipcq: JS-0123 - Shadowing is safe here
// ...
}