- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的 JavaScript 代码:
(function(){
"use strict";
document.addEventListener("DOMContentLoaded",animations); /*on content loaded */
function animations() {
/*start of animation for the toggle navigation button in smaller view ports*/
(function () {
var button = document.getElementById('nav-icon');
button.addEventListener('click', function(){
if (this.classList.contains('active')===true) {
this.classList.remove('active');
}
else {
this.classList.add('active');
}
})
})(); /*End of the toggle navigation animation*/
/*Start of scrolling side navigation for smaller view ports*/
(function(){
var button = document.getElementById('nav-icon');
var body = document.querySelector('body');
button.addEventListener('click', function(){
if (this.classList.contains('active')===true) {
body.classList.add('active-nav');
}
else {
body.classList.remove('active-nav');
}
});
})(); /*End of scrolling side navigation*/
(function () {
// body...
var media = window.matchMedia("(min-width: 992px)");
var body = document.querySelector('body');
var button = document.getElementById('nav-icon');
window.addEventListener('resize',function(){
if (media.matches) {
body.classList.remove('active-nav');
if (button.classList.contains('active')===true) {
button.classList.remove('active');
}
}
});
})();
};
})();
正如您所看到的,我在代码中多次声明了具有完全相同值的变量,但它们位于不同的函数中。每个 iife 都是一个单独的动画,并且具有不同的功能,尽管它们可能共享共同的元素。但是,我想知道这是否是一个好的做法。我是否应该在主函数中声明公共(public)变量,以便它们可以位于所有子函数的执行上下文中?另外,请突出显示任何看起来不好或不是好的做法的内容。谢谢
最佳答案
正如其他人所说,由于函数范围的原因,这很好,但是,您应该知道,最好的做法是将这两行移到其 iife 之外(大约第 4 行)
var button = document.getElementById('nav-icon');
var body = document.querySelector('body');
这样js只执行一次查找,而不是3次。这会缓存 dom 查找,从而提高性能。
关于javascript - 多次声明同一个变量是一种好的做法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44896822/
如果您想分享更多信息,可以在这里找到整个资源 指针: https://github.com/sergiotapia/DreamInCode.Net 基本上,我的API将为其他开发人员提供
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 5 年前。 Improve this qu
我不是 SCM 工具的经验丰富的用户,尽管我确信它们的用处,当然。 我在以前的工作中使用了一些不起眼的商业工具,在当前的工作中使用了 Perforce,并在我的小型个人项目中使用了 TortoiseS
所以我想知道一些我应该避免在 javascript 中做的事情以获得良好的 SEO 排名。在我的下一个站点中,我将广泛使用 jquery 和 javascript,但不想牺牲 SEO。那么您认为我应该
基本上,我想知道什么是避免 future CSS 代码出现问题和混淆的最佳方法... 像这样命名 CSS 属性: div#content ul#navigation div.float-left (真
我是一名优秀的程序员,十分优秀!