作为前端开发的“灵魂语言”,JavaScript 总能让新手又爱又恨——明明代码看着没问题,运行起来却bug不断;明明只是想实现个小功能,却写出了“面条代码”。今天就来分享3个JS核心技巧,帮你快速摆脱“新手感”,代码简洁又高效!
一、先搞懂:JS到底是干嘛的?
很多新手误以为JS只是“写弹窗、加点击事件”,其实它是网页的“大脑”!
JavaScript(JS) 是一种脚本语言,核心作用是实现页面交互和数据处理——它能响应用户的点击、输入等操作,动态修改页面内容,还能从服务器拉取数据,让静态的HTML/CSS“活”起来。
简单总结:
- HTML = 网页的“骨架”(有什么)
- CSS = 网页的“皮肤”(好不好看)
- JS = 网页的“大脑”(能做什么)
二、3个核心技巧:从“能跑”到“优雅”
- 变量声明:别再用var了!let/const才是王道
新手最容易踩的坑:用var声明变量,导致“变量污染”,明明只想改局部变量,却把全局变量覆盖了!
// ❌ 错误:var是函数级作用域,容易污染全局
var name = "张三";
if (true) {
var name = "李四"; // 这里的name直接覆盖了上面的“张三”
}
console.log(name); // 输出:李四(预期是“张三”,翻车!)
// ✅ 正确:let/const是块级作用域,安全又清晰
let name = "张三"; // 变量值会变,用let
const age = 20; // 变量值不变(常量),用const
if (true) {
let name = "李四"; // 局部变量,和外面互不干扰
}
console.log(name); // 输出:张三(正确!)
记住:能⽤const就⽤const,值要变才⽤let,彻底抛弃var!
- 数组处理:别再写for循环了!一行代码搞定
以前遍历数组要写一堆for循环,现在用JS数组的“神仙方法”,筛选、求和、转换一行代码就能实现!
const students = [
{ name: "小明", score: 90 },
{ name: "小红", score: 85 },
{ name: "小刚", score: 70 }
];
// 1. 筛选:找出分数≥80的学生(filter)
const goodStudents = students.filter(s => s.score >= 80);
console.log(goodStudents); // [{name: "小明", score: 90}, {name: "小红", score: 85}]
// 2. 转换:只获取学生姓名(map)
const names = students.map(s => s.name);
console.log(names); // ["小明", "小红", "小刚"]
// 3. 求和:计算所有学生总分(reduce)
const totalScore = students.reduce((sum, s) => sum + s.score, 0);
console.log(totalScore); // 245
- 解构赋值:快速提取对象/数组数据
以前提取对象属性要写好几行,现在用解构赋值,一行就能“精准提取”,效率直接拉满!
// 1. 解构对象(提取属性)
const user = { name: "前端大神", age: 25 };
// ❌ 传统写法
const name = user.name;
const age = user.age;
// ✅ 解构写法
const { name, age } = user; // 直接提取name和age
console.log(name, age); // 前端大神 25
// 2. 解构数组(提取元素)
const arr = [10, 20, 30];
const [a, b] = arr; // 提取第1、2个元素
console.log(a, b); // 10 20
三、实战小案例:用JS写一个“成绩排行榜”
学会了上面的技巧,我们来写一个简单的实战案例——给学生成绩排序,生成排行榜!
// 学生数据
const students = [
{ name: "小明", score: 90 },
{ name: "小红", score: 85 },
{ name: "小刚", score: 70 }
];
// 1. 按分数降序排序(从高到低)
const sortedStudents = students.sort((a, b) => b.score - a.score);
// 2. 生成排行榜文案(用map转换)
const rankText = sortedStudents.map((s, index) =>
`第${index + 1}名:${s.name},分数${s.score}分`
).join("\n"); // 把数组转成字符串,用换行分隔
// 3. 打印结果
console.log("成绩排行榜:");
console.log(rankText);
运行结果:
plaintext
成绩排行榜:
第1名:小明,分数90分
第2名:小红,分数85分
第3名:小刚,分数70分
四、总结
JS看似复杂,其实掌握核心技巧就能轻松上手:
1. 变量用 let/const ,告别 var ;
2. 数组用 filter/map/reduce ,少写 for 循环;
3. 解构赋值快速提取数据,代码更简洁。
掌握这3个技巧,你的JS代码会瞬间“高级”起来,开发效率也能翻倍!