一文盘点JavaScript中常用的数据处理方法

 更新时间:2026年01月31日 10:30:27   作者:看晴天了  
这篇文章主要为大家详细介绍了JavaScript中数据类型与常用数据处理 API,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下

一、JavaScript 数据类型总览

JavaScript 的数据类型可分为 基本数据类型(Primitive)引用数据类型(Reference)

基本数据类型(7种)

类型说明示例
Number数字1, 3.14, NaN
String字符串'hello'
Boolean布尔true / false
Undefined未定义undefined
Null空对象指针null
Symbol唯一标识Symbol('id')
BigInt大整数123n

引用数据类型

类型说明
Object普通对象
Array数组
Function函数
Date日期
RegExp正则
Map / SetES6 新集合
ArrayBuffer / TypedArray二进制数据

二、数组(Array)常用数据处理 API

1. 创建数组

const arr = [1, 2, 3];        // 字面量创建数组
const arr2 = new Array(5).fill(0); // 创建长度为5的数组,并填充0

2. 增删改

arr.push(4);      // push(value): 向数组末尾添加元素,参数是要添加的值
arr.pop();        // pop(): 删除数组最后一个元素,返回被删除的值
arr.unshift(0);   // unshift(value): 向数组开头添加元素
arr.shift();      // shift(): 删除数组第一个元素
arr.splice(1,1,'a'); 
// splice(start, deleteCount, item1,...): 从start开始删除deleteCount个,并插入新元素

3. 截取/合并

arr.slice(1,3);    // slice(start,end): 截取数组,不影响原数组
arr.concat([4,5]); // concat(array): 合并数组,返回新数组

4. 遍历/映射/过滤

arr.forEach((item,index)=>{}); 
// forEach(callback): 遍历数组,参数是回调函数(item,index,array)

arr.map(item=>item*2); 
// map(callback): 映射数组,返回新数组

arr.filter(item=>item>1); 
// filter(callback): 过滤满足条件的元素

arr.reduce((acc,cur)=>acc+cur,0); 
// reduce(callback, init): 累加器,acc为累计值,cur当前值,init为初始值

✅ 5. 查找

arr.includes(2);   // includes(value): 判断是否包含某值
arr.indexOf(2);    // indexOf(value): 返回第一次出现的索引
arr.find(item=>item>1); // find(callback): 返回第一个满足条件的值
arr.findIndex(item=>item>1); // findIndex: 返回索引

6. 排序与判断

arr.sort((a,b)=>a-b); // sort(compareFn): 排序,参数是比较函数
arr.reverse();        // reverse(): 反转数组
arr.every(item=>item>0); // every(callback): 是否全部满足条件
arr.some(item=>item>2);  // some(callback): 是否至少一个满足

补充高级数组 API

arr.flat();          // flat(depth): 数组扁平化
arr.flatMap(fn);     // flatMap(fn): map后扁平化
Array.from(iterable); // 将类数组或可迭代对象转为数组
Array.isArray(obj);   // 判断是否数组

三、字符串(String)常用数据处理 API

基础操作

str.length;             // 获取字符串长度
str.charAt(1);           // charAt(index): 获取指定索引字符
str.substring(1,4);      // substring(start,end): 截取字符串
str.slice(1,4);           // slice(start,end): 截取字符串
str.split(' ');           // split(separator): 分割字符串为数组
str.replace('a','b');     // replace(old,new): 替换字符串

大小写与空格

str.toLowerCase(); // 转小写
str.toUpperCase(); // 转大写
str.trim();         // 去除首尾空格

查找判断

str.indexOf('a');   // 返回首次出现位置
str.lastIndexOf('a'); // 返回最后出现位置
str.includes('a');  // 是否包含
str.startsWith('He'); // 是否以某字符串开头
str.endsWith('ld');   // 是否以某字符串结尾

ES6+ 扩展

str.repeat(2);          // repeat(count): 重复字符串
str.padStart(10,'0');   // padStart(len,str): 左侧填充
str.padEnd(10,'0');     // padEnd(len,str): 右侧填充

补充

str.match(/a/g);     // match(reg): 返回匹配结果数组
str.search(/a/);     // search(reg): 返回匹配索引
str.localeCompare('b'); // 比较字符串

四、对象(Object)常用数据处理 API

Object.keys(obj);   // 返回对象key数组
Object.values(obj); // 返回对象value数组
Object.entries(obj);// 返回[key,value]数组

Object.assign({}, obj); // assign(target,...sources): 合并对象
const newObj = { ...obj }; // 扩展运算符浅拷贝

Object.freeze(obj); // 冻结对象,不可修改
Object.seal(obj);   // 密封对象,可改值不可增删

Object.fromEntries(arr); // entries数组转对象
Object.hasOwn(obj,'a');  // 判断自身属性

五、日期(Date)API

const now = new Date(); // 创建日期对象

now.getFullYear(); // 年
now.getMonth();    // 月(0-11)
now.getDate();     // 日
now.getDay();      // 星期
now.getHours();    // 时
now.getMinutes();  // 分
now.getSeconds();  // 秒
now.getTime();     // 时间戳(ms)

now.setFullYear(2025); // 设置年份
now.setMonth(11);       // 设置月份

now.toISOString();     // ISO格式
now.toLocaleString();   // 本地格式
Date.now();              // 当前时间戳

六、数学(Math)API

Math.PI;          // 圆周率
Math.abs(-5);     // 绝对值
Math.ceil(4.1);   // 向上取整
Math.floor(4.9);  // 向下取整
Math.round(4.5);  // 四舍五入
Math.max(1,2,3);  // 最大值
Math.min(1,2,3);  // 最小值
Math.random();    // 0-1随机数
Math.sqrt(9);     // 开平方
Math.pow(2,3);    // 幂运算
Math.trunc(4.9);  // 去小数

七、异步与时间 API

new Promise((resolve,reject)=>{}); 
// Promise构造函数,resolve成功回调,reject失败回调

async function f() { await fetch(); }
// async声明异步函数,await等待Promise结果

setTimeout(fn,1000); // 延迟执行
setInterval(fn,1000); // 定时循环
clearInterval(id);    // 清除定时器

八、浏览器数据处理 API

document.querySelector('.a'); // 选择DOM元素
node.appendChild(child);       // 添加子节点
node.removeChild(child);        // 删除子节点

localStorage.setItem('k','v');  // 本地存储
sessionStorage.getItem('k');    // 会话存储

location.href;                  // 当前URL
history.pushState();             // 修改历史记录
navigator.userAgent;              // 浏览器信息

九、ES6 新数据结构

const map = new Map();
map.set('k','v'); // 设置键值
map.get('k');     // 获取
map.has('k');     // 判断

const set = new Set();
set.add(1);       // 添加
set.has(1);       // 判断

十、类型判断与转换(面试重点)

typeof obj;                     // 基础类型判断
obj instanceof Array;           // 原型链判断
Object.prototype.toString.call(obj); // 精确类型判断

Number('123'); // 转数字
String(123);   // 转字符串
Boolean(0);    // 转布尔
parseInt('10px'); // 转整数
parseFloat('3.14'); // 转浮点

十一、JSON API

JSON.stringify(obj); // 对象转JSON字符串
JSON.parse(str);      // JSON字符串转对象

十二、函数 API

fn.call(obj,a,b);   // call(this, args): 改变this并传参
fn.apply(obj,[a,b]); // apply(this, [args]): 参数数组形式
fn.bind(obj);         // bind(this): 返回新函数

十三、常用数据处理技巧

[...new Set(arr)]; // 数组去重
arr.flat(Infinity); // 扁平数组
structuredClone(obj); // 深拷贝

到此这篇关于一文盘点JavaScript中常用的数据处理方法的文章就介绍到这了,更多相关JavaScript数据处理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JavaScript希尔排序、快速排序、归并排序算法

    JavaScript希尔排序、快速排序、归并排序算法

    这篇文章主要为大家详细介绍了JavaScript希尔排序、快速排序、归并排序算法,感兴趣的朋友可以参考一下
    2016-05-05
  • 随鼠标移动的时钟非常漂亮遗憾的是只支持IE

    随鼠标移动的时钟非常漂亮遗憾的是只支持IE

    这篇文章主要介绍了随鼠标移动的时钟非常漂亮遗憾的是只支持IE,需要的朋友可以参考下
    2014-08-08
  • JavaScript通过RegExp使用正则表达式过程详解

    JavaScript通过RegExp使用正则表达式过程详解

    正则表达式用于定义一些字符串的规则。计算机可以根据正则表达式,来检查一个字符串是否符合指定的规则,或者将字符串中符合规则的内容提取出来。RegExp的意思是 Regular expression。使用typeof检查正则对象,会返回object
    2023-03-03
  • JavaScript数组操作之旋转二维数组

    JavaScript数组操作之旋转二维数组

    这篇文章主要介绍了JavaScript数组操作之旋转二维数组,主要从两个方面展开文章介绍,一是通过对数组的操作熟练度;二是(镜像反转)比实现一更优,减少了空间复杂度,内容介绍具有一定的参考价值,需要的小伙伴可以参考一下
    2022-04-04
  • electron中的IPC通信及性能进阶技巧

    electron中的IPC通信及性能进阶技巧

    本文详解Electron IPC的四种通信模式、安全实践(上下文隔离、禁用Node.js集成)及性能优化(数据传输、减少调用),并指出事件监听泄漏、数据序列化限制等常见陷阱,感兴趣的朋友一起看看吧
    2025-07-07
  • layui框架中layer父子页面交互的方法分析

    layui框架中layer父子页面交互的方法分析

    这篇文章主要介绍了layui框架中layer父子页面交互的方法,结合实例形式分析了layer父子页面交互的常用技巧以及layer弹出多个iframe找到父页面的操作方法,需要的朋友可以参考下
    2017-11-11
  • iframe的父子窗口之间的对象相互调用基本用法

    iframe的父子窗口之间的对象相互调用基本用法

    iframe在使用时可能会涉及到父子窗口之间传值和方法的相互调用,研究了一下其实非常简单,就那么几个用法而已,在此与大家分享下,感兴趣的朋友可以参考下
    2013-09-09
  • JavaScript中函数的四种调用方式总结

    JavaScript中函数的四种调用方式总结

    这篇文章主要为大家详细介绍了JavaScript中函数的四种调用方式,文中的示例代码讲解详细,对我们深入掌握JavaScript有一定的帮助,需要的可以参考下
    2023-10-10
  • JS实现5秒钟自动封锁div层的方法

    JS实现5秒钟自动封锁div层的方法

    这篇文章主要介绍了JS实现5秒钟自动封锁div层的方法,涉及javascript针对div层操作的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-02-02
  • ES6 迭代器 Iterator使用总结

    ES6 迭代器 Iterator使用总结

    ES6引入了Iterator(迭代器)接口,用于顺序访问可迭代对象,Iterator接口提供统一的访问接口,并通过for...of循环供消费,本文给大家介绍ES6 迭代器 Iterator使用总结,感兴趣的朋友跟随小编一起看看吧
    2025-02-02

最新评论