• JavaScript类型相关常用操作


    JS数组,字符串,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
    

    从上面的例子中还可以发现,数组中嵌套数组时,所有元素依次打印出来,那是因为数组ArraytoString()方法内部实现就是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字符串转数组

    使用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']
    

    JS清空数组的方法

    赋值空数组

    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]
    

    JS时间和时间戳的转换

    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对象即可,支持毫秒和秒。

    let timestamp = 1549976497495;
    let dateObj = new Date(timestamp); // Date对象
    dateObj.getTime();  // 1549976497495
    
    timestamp = 1549976497;
    dateObj = new Date(timestamp); // Date对象
    dateObj.getTime();  // 1549976497
    

    JS字符串和时间戳互转

    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( );      //获取日期与时间----如果涉及到时分秒,直接使用即可。
    
  • 相关阅读:
    手撕面试官系列(十一):BAT面试必备之常问85题
    手撕面试官系列(十):面试必备之常问Dubbo29题+MySQL55题
    手撕面试官系列(九):分布式限流面试专题 Nginx+zookeeper
    手撕面试官系列(八):分布式通讯ActiveMQ+RabbitMQ+Kafka面试专题
    手撕面试官系列(七):面试必备之常问并发编程高级面试专题
    手撕面试官系列(六):并发+Netty+JVM+Linux面试专题
    手撕面试官系列(五):Tomcat+Mysql+设计模式面试专题
    手撕面试官系列(四 ):MongoDB+Redis 面试专题
    手撕面试官系列(三):微服务架构Dubbo+Spring Boot+Spring Cloud
    linux 使用socket代理
  • 原文地址:https://www.cnblogs.com/youyoui/p/10368186.html
Copyright © 2020-2023  润新知