本文系统梳理了 JavaScript 中的基本数据类型与引用类型,详细演示了数组、字符串与 JSON 对象之间的相互转换方法。内容涵盖数组清空技巧、splice 参数解析以及 Date 对象在时间戳与字符串间的转换应用,为前端开发提供实用的代码参考。
JavaScript 数据类型概述
JavaScript 中涉及哪些基本数据类型?
在 ECMAScript 标准中,存在五种基础数据类型,通常被称为基本类型:Undefined、Null、Boolean、Number 和 String。此外,还存在一种复杂数据类型 Object,其本质是由一组无序的名值对构成的集合。
其中,Undefined、Null、Boolean 和 Number 均属于基本类型。而 Object、Array 和 Function 则属于引用类型。值得注意的是,String 类型在某些场景下表现出特殊性。
本文主要介绍 JavaScript 中与类型相关的常用操作,供读者参考学习。以下是详细介绍。
数组、字符串与 JSON 的转换
JavaScript 中数组、字符串与 JSON 对象之间的相互转换方法。
如何将 JS 数组转换为字符串。
可以利用数组内置的 join 方法,将数组元素连接并转化为字符串。
let arr = [1,2,'uu'];
let str = arr.join(',');
console.log(str); // 1,2,uu
若数组元素包含对象,则会调用该对象的 toString() 方法将其转换为字符串。
class C {
// 自定义类C,以及自定义toString()方法
toString() { return 'class C'; }
}
let cc = new C(); // C的实例
let arr = [{a: 1}, cc, [3,4,[5,5]], 5];
let str = arr.join('---');
console.log(str); // [object Object]---class C---3,4,5,5---5
从上述示例可以看出,当数组中嵌套其他数组时,所有元素会被依次打印出来。这是因为数组 Array 的 toString() 方法内部实现逻辑等同于调用 join 方法。
[1,1,[2,2,[3,3,3]]] + ""; // 1,1,2,2,3,3,3
如何将字符串转换为数组。
利用字符串内置的 split 方法,可以将字符串按指定分隔符分割为数组。
let str = '1,2,uu';
let arr = str.split(',');
console.log(arr); // ["1", "2", "uu"]
str
数组与 JSON 字符串之间的相互转换。
使用 JSON.parse() 方法可以将 JSON 字符串解析为相应的 JSON 对象(包括数组);而 JSON.stringify() 方法则可将数组或对象序列化为 JSON 字符串。
let arr = [1,2,'uu'];
let jsonStr = JSON.stringify(arr);
console.log(jsonStr); // 字符串:'[1,2,"uu"]'
let jsonObj = JSON.parse(jsonStr);
console.log(jsonObj); // 数组: [1,2,'uu']
清空数组的常用方法
JavaScript 中清空数组的几种方法。
方法一:赋值为空数组。
let arr = [1,2,3];
console.log(arr); // [1,2,3]
arr = [];
console.log(arr); // []
方法二:修改 length 属性。
JS 数组的 length 属性支持直接修改。
let arr = [1,2,3];
console.log(arr); // [1,2,3]
arr.length = 0;
console.log(arr); // []
方法三:使用 splice 方法。
JS 数组内置的 splice() 方法功能强大,可用于向数组中添加或删除元素。
该方法的参数说明如下,返回值包含被删除的项目(如果存在)。
arrayObject.splice(index, howmany, item1,....., itemX)
| 参数名 | 描述 |
|---|---|
| index | 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。 |
| howmany | 必需。要删除的项目数量。如果设置为 0,则不会删除项目。 |
| item1, ..., itemX | 可选。向数组添加的新项目。 |
let arr = [1,2,3];
console.log(arr); // [1,2,3]
let arr2 = arr.splice(0, arr.length); // 删除所有元素
console.log(arr); // []
console.log(arr2); // [1,2,3]
时间与时间戳的转换处理
JavaScript 中时间与时间戳的相互转换。
如何将 JS 时间对象转换为时间戳。
可以使用 Date 对象提供的多种方法来实现。
let dateObj = new Date(); // Date对象,当前时间
// parse()方法,毫秒级别的数值被转化为000
Date.parse(dateObj); // 1549976497000
// Date对象的valueOf()方法
dateObj.valueOf(); // 1549976497495
// Date对象的getTime()方法
dateObj.getTime(); // 1549976497495
// 转化为Number类型,包括显式和隐式类型转换
new Number(dateObj); // Number {1549976497495}
dateObj - 0; // 1549976497495
如何将 JS 时间戳转换为时间对象。
直接将时间戳作为参数传入 Date 构造函数即可创建 Date 对象,该方法同时支持毫秒级和秒级的时间戳。
let timestamp = 1549976497495;
let dateObj = new Date(timestamp); // Date对象
dateObj.getTime(); // 1549976497495
timestamp = 1549976497;
dateObj = new Date(timestamp); // Date对象
dateObj.getTime(); // 1549976497
JavaScript 中字符串与时间戳的相互转换。
Date() 对象的构造函数不仅接受表示时间戳的数字类型参数,还可以接受时间字符串,但后者对格式有特定要求。
let timeStr = '2019-02-02 12:12:12';
let dateObj = new Date(timeStr);
dateObj.getTime(); // 1549080732000
dateObj.toDateString(); // Sat Feb 02 2019
dateObj.toString(); // Sat Feb 02 2019 12:12:12 GMT+0800 (中国标准时间)
dateObj.toLocaleString(); // 2019/2/2 下午12:12:12
myDate.getYear(); //获取当前年份(2位)
myDate.getFullYear(); //获取完整的年份(4位,1970-????)
myDate.getMonth(); //获取当前月份(0-11,0代表1月)
myDate.getDate(); //获取当前日(1-31)
myDate.getDay(); //获取当前星期X(0-6,0代表星期天)
myDate.getTime(); //获取当前时间(从1970.1.1开始的毫秒数)
myDate.getHours(); //获取当前小时数(0-23)
myDate.getMinutes(); //获取当前分钟数(0-59)
myDate.getSeconds(); //获取当前秒数(0-59)
myDate.getMilliseconds(); //获取当前毫秒数(0-999)
myDate.toLocaleDateString(); //获取当前日期
var mytime=myDate.toLocaleTimeString(); //获取当前时间
myDate.toLocaleString( ); //获取日期与时间----如果涉及到时分秒,直接使用即可。
总结。
以上就是本文的全部内容,希望这些内容对大家的编程学习或工作有所帮助。如有疑问欢迎留言交流,感谢支持。