美文网首页
5.javascript基础知识补充

5.javascript基础知识补充

作者: 飞菲fly | 来源:发表于2017-08-17 11:58 被阅读75次

    日期和Math
    //---------------题目-------------------------
    1.获取2017-06-10格式的日期

    function formatDate(dt){
    
    if(!dt){
        dt = new Date();
    }
    
    var year = dt.getFullYear();
    var month = dt.getMonth() +1 ;
    var date = dt.getDate();
    
    if(month < 10){
        //强制类型转换
        month = '0' + month;
    }
    
    if(date < 10){
        //强制类型转换
        date = '0' + date;
    }
    //强制类型转换
    return year + '-' + month + '-' + date;
    }
    
    var dt = new Date();
    var formatDate = formatDate(dt);
    console.log(formatDate);
    

    2.获取随机数,要求是长度一致(一样长)的字符串格式

    var random = Math.random();
    random = random+'0000000000'; //后面加上10个零
    random = random.slice(0,10);  //从第一位开始到第10位结束
    console.log(random);
    

    3.写一个能遍历对象和数组的通用forEach函数

    function forEach(obj,fn){
        var key;
        if(obj instanceof Array){
            //准备判断是不是数组
            obj.forEach(function(item,index){
                fn(index,item);
            });
        }else{
            //不是数组就是对象
            for(key in obj){
                if(obj.hasOwnProperty(key)){
                    fn(key,obj[key]);
                }
                
            }
        }
        
    }
    
    var arr = [1,2,3];
    
    //注意,这里参数的顺序换了,为了和对象的遍历格式一致
    forEach(arr,function(index,item){
        console.log(index,item);
    }); // 0 1 ; 1 2 ; 2 3 
    
    var obj = {x:100,y:200};
    forEach(obj,function(key,value){
       console.log(key,value); //x 100 ; y 200
    });
    

    //---------------知识点------------------------
    1.日期

    Date.now(); //获取当前时间毫秒数
    var dt = new Date();
    dt.getTime();      //获取毫秒数
    dt.getFullYear();  //年
    dt.getMonth();     //月(0-11)
    dt.getDate();      //日(0-11)
    dt.getHours();     //小时(0-23)
    dt.getMinutes();   //分钟(0-59)
    dt.getSeconds();   //秒(0-59)
    

    2.Math

    获取随机数  Math.random() 
    返回的是一个大于0小于1的一个小数,随时改变不会重复,清除缓存用
    

    3.数组API

    forEach 遍历所有元素
    every 判断所有元素是否都符合条件
    some 判断是否有至少一个元素符合条件
    sort 排序
    map 对元素重新组装,生成新数组
    filter 过滤符合条件的元素

    eg:1.forEach
        var arr = [1,2,3];
        arr.forEach(function(item,index){
            //遍历数组的所有元素
            //item是元素的值  index是元素的索引(位置)
            console.log(index,item); // 0 1 ;1 2 ;2 3
        });
        
        2.every
        var arr = [1,2,3];
        var result = arr.every(function(item,index){
            //用来判断所有的数组元素,都满足一个条件
            if(item <4 ){
                return true;
            }
        });
        console.log(result); //true
        
        3.some
        var arr = [1,2,3];
        var result = arr.some(function(item,index){
            //用来判断所有的数组元素,只要有一个满足条件即可
            if(item <2){
                return true;
            }
        });
        console.log(result);  //true
        
        4.sort
        var arr = [1,4,2,3,5];
        var arr2 = arr.sort(function(a,b){
            //从小到大排序
            return a - b;
            
            //从大到小排序
            //return  b - a;
        });
        console.log(arr2);
        
        5.map
        var arr = [1,2,3,4];
        var arr2 = arr.map(function(item,index){
            //将元素重新组装,并返回
            return '<b>' + item +'</b>'
        });
        console.log(arr2);
        
        6.filter
        var arr = [1,2,3];
        var arr2 = arr.filter(function(item,index){
            //通过某一个条件过滤数组
            if(item >= 2){
                return true;
            } 
        });
        console.log(arr2); //2,3
    

    4.对象API

    var obj = {
        x: 100,
        y: 200,
        z: 300
        
    };
    var key;
    //key就是obj的一个属性名,这里key去的是 x y z
    for(key in obj){
        //证明这个属性名字x y z 是obj原生的属性,而不是从原型中拿过来的属性
        if(obj.hasOwnProperty(key)){
            console.log(key,obj[key]); // x 100; y 200;  z 300
        }
    }

    相关文章

      网友评论

          本文标题:5.javascript基础知识补充

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