JavaScript 基础技巧手册(新手友好版)
本文内容基于 AI 生成结果整理,可能包含不准确信息,仅供参考使用。
一、数组操作必备
1. 删除数组元素
javascript
let fruits = ["苹果", "香蕉", "橘子"];
fruits.splice(1, 1); // 删除第2个元素
console.log(fruits); // ['苹果', '橘子']
关键点 :
- splice(开始位置, 删除个数)
- 会直接修改原数组
2. 检查重复项
javascript
function hasDuplicate(list, item) {
return list.filter((x) => x === item).length > 1;
}
// 使用示例
let names = ["张三", "李四", "张三"];
console.log(hasDuplicate(names, "张三")); // true
3. 快速清空数组
javascript
let arr = [1, 2, 3];
arr.length = 0; // 清空数组
console.log(arr); // []
4. 数组转对象(带索引)
javascript
const fruits = ["苹果", "香蕉", "橘子"];
const obj = { ...fruits };
// {0: '苹果', 1: '香蕉', 2: '橘子'}
5. 交换变量值(无临时变量)
javascript
let a = 1;
let b = 2;
[a, b] = [b, a]; // ES6解构赋值
console.log(a, b); // 2 1
二、对象实用操作
1. 合并两个对象
javascript
let obj1 = { name: "小明" };
let obj2 = { age: 18 };
// 方法1(推荐)
let merged = { ...obj1, ...obj2 };
// { name: '小明', age: 18 }
// 方法2(旧浏览器兼容)
let merged2 = Object.assign({}, obj1, obj2);
javascript
let obj1 = { name: "小明", age: 22 };
let obj2 = { name: "小美", age: 18, sex: "女" };
// {name: '小美', age: 18, sex: '女'}
let merged = { ...obj1, ...obj2 };
// {name: '小美', age: 18, sex: '女'}
let merged2 = Object.assign({}, obj1, obj2);
2. 判断空对象
javascript
let obj = {};
// 最佳写法
console.log(Object.keys(obj).length === 0); // true
// 传统写法
function isEmpty(obj) {
for (let key in obj) {
return false;
}
return true;
}
3. 动态属性名
javascript
const dynamicKey = "email";
const user = {
name: "Alice",
[dynamicKey]: "alice@example.com", // 动态计算属性名
};
4. 对象属性批量删除
javascript
const data = { id: 1, tmp1: "x", tmp2: "y" };
["tmp1", "tmp2"].forEach((k) => delete data[k]);
// {id: 1}
三、日常开发小技巧
1. 快速生成 1-100 随机数
javascript
let randomNum = Math.floor(Math.random() * 100) + 1;
拆解说明 :
Math.random()
→ 生成 0-1 的小数(如 0.345)- *100 → 变成 0-99.999
Math.floor()
→ 取整得 0-99- +1 → 最终 1-100
2. 代替简单 if-else
javascript
// 原写法
let status;
if (score >= 60) {
status = "及格";
} else {
status = "不及格";
}
// 简化写法
let status = score >= 60 ? "及格" : "不及格";
3. 快速深拷贝(JSON 法)
javascript
const obj = { a: 1 };
const copy = JSON.parse(JSON.stringify(obj));
4. 浏览器环境检测
javascript
const isBrowser = typeof window !== "undefined";
5. 生成随机十六进制颜色
javascript
const randomColor = "#" + Math.floor(Math.random() * 16777215).toString(16);
四、常见坑与解决方案
1. 浮点数计算精度问题
javascript
console.log(0.1 + 0.2); // 0.30000000000000004
// 正确做法
let sum = (0.1 * 10 + 0.2 * 10) / 10;
console.log(sum); // 0.3
2. 数组去重最优方案
javascript
let arr = [1, 2, 2, 3];
// 现代浏览器(推荐)
let uniqueArr = [...new Set(arr)];
// 兼容旧浏览器
let uniqueArr2 = arr.filter((item, index) => {
return arr.indexOf(item) === index;
});