美文网首页
细节 javascript 使用的技巧

细节 javascript 使用的技巧

作者: alipy_258 | 来源:发表于2020-03-08 14:52 被阅读0次

    今天看一篇文章,学到了很多,好记性不如烂笔头~

    字符串转换为数字
    var str = '111';
    console.log(+str); // 111
    console.log(str-0); // 111
    console.log(typeof +str); // number
    console.log(typeof (str-0)); // number
    // 日期也可以
    var data = +new Date(); // 1555584126215
    
    数值向下取整
    var a = ~~2.50; // 2
    var a= 2.50>>0; // 2
    var a= 2.50|0; // 2
    Math.floor(2.50); // 2
    
    字符串取整
    var a = "2.50"|0; // 2
    var a= "2.50"^0; // 2
    parseInt(2.50); // 2
    
    使用 && 替代单一的条件判断
    // 可以这样
    if(!ticket) {
        getLogin();
    }
    // 也可以这样写
    !ticket && getLogin();
    // 或
    ticket || getLogin();
    
    通过闭包调用setTimeout
    for(var i = 0; i < 10; i++) {
        setTimeout(function(){
            console.log(i);  // 10 10 10 ...
        },1000);
    }
    
    for(var i = 0; i < 10; i++) {
        (function(i){
            setTimeout(function(){
                console.log(i);  // 0 1 2 3 4 ...
            },1000)
        })(i);
    }
    
    时间日期格式转换函数
    // 实现方法:在 Date 原型上添加方法
    Date.prototype.format = function(format) { 
        var o = {
            'M+': this.getMonth() + 1,                      //month
            'd+': this.getDate(),                           //day
            'h+': this.getHours(),                          //hour
            'm+': this.getMinutes(),                        //minute
            's+': this.getSeconds(),                        //second
            'q+': Math.floor((this.getMonth() + 3) / 3),    //quarter
            'S': this.getMilliseconds()                     //millisecond
        }
        if (/(y+)/.test(format)) {
            format = format.replace(
                RegExp.$1,
                (this.getFullYear() + '').substr(4 - RegExp.$1.length)
            );
        }
        for (var k in o) {
            if (new RegExp('(' + k + ')').test(format)) {
                format = format.replace(
                    RegExp.$1,
                    RegExp.$1.length == 1 ?
                        o[k]: ('00' + o[k]).substr(('' + o[k]).length)
                );
            }
        }
        return format;
    }
    
    // 使用方法
    var now = new Date(); 
    var nowStr = now.format('yyyy-MM-dd hh:mm:ss'); 
    
    var testDate = new Date(); 
    var testStr = testDate.format('YYYY年MM月dd日hh小时mm分ss秒'); 
    alert(testStr); 
    
    alert(new Date().format('yyyy年MM月dd日')); 
    alert(new Date().format('MM/dd/yyyy')); 
    alert(new Date().format('yyyyMMdd')); 
    alert(new Date().format('yyyy-MM-dd hh:mm:ss'));
    
    格式化JSON

    你之前可能使用过 JSON.stringify,但你是否知道它还可以用来给 JSON 添加缩进?
    stringify() 方法可以接受两个额外的参数,一个是函数(形参为 replacer),用于过滤要显示的 JSON,另一个是空格个数(形参为 space)。
    space 可以是一个整数,表示空格的个数,也可以是一个字符串(比如’ ’表示制表符),这样得到的 JSON 更容易阅读

    console.log(JSON.stringify({ name: '惠丽', id: '123' }, null, '   '));
    // Result:
    // '{
    //  "name": '惠丽',
    //  "id":'123'
    // }'
    
    

    参考链接:https://blog.beard.ink/tags/JavaScript/

    相关文章

      网友评论

          本文标题:细节 javascript 使用的技巧

          本文链接:https://www.haomeiwen.com/subject/kjtxgqtx.html