## 开场白
做前端三年,我踩过无数坑,也总结了一些能真正提升效率的技巧。今天分享 5 个实用方法,尤其是第 3 个,能帮你省下大量调试时间。
—
## 技巧一:CSS 变量实现动态主题
别再硬编码颜色了!用 CSS 变量,一键切换主题不是梦。
“`css
:root {
–primary-color: #3498db;
–bg-color: #ffffff;
–text-color: #333333;
}
.dark-mode {
–primary-color: #2980b9;
–bg-color: #1a1a1a;
–text-color: #ffffff;
}
body {
background: var(–bg-color);
color: var(–text-color);
}
“`
**实操步骤:**
1. 在根元素定义变量
2. 创建主题类覆盖变量值
3. 用 JS 切换 class:`document.body.classList.toggle(‘dark-mode’)`
—
## 技巧二:Intersection Observer 懒加载
别再用 scroll 事件了!Observer API 性能更好,代码更简洁。
“`javascript
const observer = new IntersectionObserver((entries) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
entry.target.src = entry.target.dataset.src;
observer.unobserve(entry.target);
}
});
});
document.querySelectorAll(‘img[data-src]’).forEach(img => {
observer.observe(img);
});
“`
**HTML 写法:**
“`html
“`
—
## 技巧三:Console 的高级用法(重点!)
90% 的人只会用 `console.log`,其实这些更香:
“`javascript
// 表格化输出对象
console.table([{name: ‘张三’, age: 25}, {name: ‘李四’, age: 30}]);
// 性能计时
console.time(‘加载时间’);
// 你的代码…
console.timeEnd(‘加载时间’);
// 分组调试
console.group(‘用户信息’);
console.log(‘姓名:张三’);
console.log(‘年龄:25’);
console.groupEnd();
// 断言调试
console.assert(age > 18, ‘年龄必须大于 18 岁’);
“`
**使用场景:**调试复杂对象、性能分析、条件断言
—
## 技巧四:CSS Grid 快速布局
Grid 比 Flex 更适合二维布局,三行代码搞定响应式:
“`css
.container {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 20px;
}
“`
**效果:**自动根据容器宽度调整列数,无需媒体查询!
—
## 技巧五:防抖节流优化性能
搜索框、滚动监听必备,避免频繁触发:
“`javascript
// 防抖(n 秒后执行)
function debounce(fn, delay) {
let timer;
return function(…args) {
clearTimeout(timer);
timer = setTimeout(() => fn.apply(this, args), delay);
};
}
// 节流(n 秒内只执行一次)
function throttle(fn, limit) {
let inThrottle;
return function(…args) {
if (!inThrottle) {
fn.apply(this, args);
inThrottle = true;
setTimeout(() => inThrottle = false, limit);
}
};
}
// 使用示例
searchInput.addEventListener(‘input’, debounce(handleSearch, 300));
window.addEventListener(‘scroll’, throttle(handleScroll, 100));
“`
—
## 结语
这些技巧都是我实战中总结的,能真正提升开发效率。建议收藏,下次遇到对应场景直接套用。
**记住:**好代码不是写得越多越好,而是写得越巧越好。
—
_觉得有用?欢迎在评论区分享你的前端技巧!_