javascript常用实例
常见字符串操作
字符串反转
const reversed = 'hello'.split('').reverse().join('');
console.log(reversed); // 'olleh'
检查回文字符串
function isPalindrome(str) {return str === str.split('').reverse().join('');
}
数组处理方法
数组去重
const unique = [...new Set([1, 2, 2, 3])]; // [1, 2, 3]
数组扁平化
const flattened = [1, [2, [3]]].flat(Infinity); // [1, 2, 3]
日期处理
格式化日期
function formatDate(date = new Date()) {return `${date.getFullYear()}-${(date.getMonth()+1).toString().padStart(2, '0')}-${date.getDate().toString().padStart(2, '0')}`;
}
数字处理
生成随机数
function random(min, max) {return Math.floor(Math.random() * (max - min + 1)) + min;
}
千分位格式化
function formatNumber(num) {return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
DOM操作
事件委托
document.querySelector('ul').addEventListener('click', function(e) {if(e.target.tagName === 'LI') {console.log('Clicked on:', e.target.textContent);}
});
异步处理
Promise超时控制
function timeoutPromise(promise, ms) {return Promise.race([promise,new Promise((_, reject) => setTimeout(() => reject(new Error('Timeout')), ms))]);
}
实用函数
深度克隆对象
function deepClone(obj) {return JSON.parse(JSON.stringify(obj));
}
节流函数
function throttle(fn, delay) {let last = 0;return function(...args) {const now = Date.now();if(now - last >= delay) {fn.apply(this, args);last = now;}};
}