你好javascript day9

1)Math方法

Math.abs();//绝对值
Math.floor();//向下舍入
Math.ceil();//向上舍入
Math.round();//四舍五入
// 负数的四舍五入,一般都是转换为正数处理
 var max=Math.max(3,5,7,9,10);//求最大值  10
 var min=Math.min(3,5,7,9,10);//求最小值  3
 console.log(max,min);//10  3
        // 求数组元素的最大值和最小值    
    var arr=[3,6,9,1,5,4];
    var max=Math.max.apply(null,arr);
    var min=Math.min.apply(null,arr);
    console.log(max); //9
x数的y次幂  Math.pow(x,y);
 
        // 两点距离公式
    function getDistance(point1,point2){
        return Math.sqrt(Math.pow(point2.x-point1.x,2)+Math.pow(point2.y-point1.y,2));
    }


    var point1={x:100,y:100};
    var point2={x:200,y:200};
   var v=getDistance(point1,point2);
   console.log(v);

2)string字符方法

 // 这个字符串是存在栈中的
 var str="abcdef";
 // 这个字符串是存在堆中,构造函数创建的一般都是对象,字符型对象
 // var str1=new String("abcdef");
str[1]="z";
console.log(str[1]);
下标的写法,我们可以获取字符串中第几位的字符,但是不能修改设置
 
 length  字符的长度,就是字符串有多少字符组成,字符串的长度无法修改
 length不可以修改
charAt(下标);
charCodeAt(下标); 将字符转为Unicode编码
String.fromCharCode(46) 将编码转换为字符串
concat  连接字符串  和连接数组一样的用法
indexOf  lastIndexOf   和数组中indexOf相同查找字符所在下标
search match   查找  用于正则表达式
replace  替换  类似于数组中的splice();
        》 数组的splice是修改原数组的内容
        》但是replace不修改原字符的内容,会返回一个被修改后的新字符串
        》如果出现两个相同的元素,那么只修改第一次被查找到的元素
slice(从下标几开始,到下标几之前结束) 截取复制字符串    允许有负值,负值表示从后向前
substring   和slice相似    不允许负数,所有的负值指0之前,因此负数都是0
substr(从下标几开始,截取长度);
split(分隔符)   将字符串以分隔符进行分割转换为数组
reverse();数组元素倒序或者反转
toLowerCase转为小写
toUpperCase转为大写
 
 
常用字符Unicode编码
        // 0  48
        // 9  57
        // a  97
        // z  122
        // A  65
        // Z  90
        // 验证码  防止高并发

        function getSecurityCode(){
            var arr=[];
            for(var i=48;i<123;i++){
                if(i>57 && i<65){
                    i=64;
                    continue;
                }
                if(i>90 && i<97){
                    i=96;
                    continue;
                }
                arr.push(String.fromCharCode(i));
            }
            arr.sort(function(){
                return Math.random()-0.5;
            });
            arr.length=4;
            return arr.join("");
        }



       var str=getSecurityCode();
       console.log(str); 

 处理引用地址

      function getURLObj(url) {
        // url.split("?") 就可以将url以?分为数组的两个元素
        // [1]  将刚才分割的数组的最后一项获取,获取的内容就是?后面的字符串
        // .split("&") 将?后面的字符串用&符切割为数组
        // reduce是返回一个值 在reduce的第二个参数中给入{},表示给初始值是一个空对象
        // value就是刚才给入的初始值对象
        console.log(url.split("?")[1].split("&"));
        return url
          .split("?")[1]
          .split("&")
          .reduce(function(value, item) {
            //   value就是刚开始空对象
            // item就是切好的数组每个元素,例如"fd=t";
            // 用=切割为数组
            // 给value对象增加属性为=的左边的字符,值为=右边的内容
            // value["fd"]="t";
            var arr = item.split("=");
            value[arr[0]] = arr[1];
            // 返回这个对象,用于下一次的的添加属性
            return value;
          }, {});
      }

      var o = getURLObj(str);
      console.log(o);

3)日期对象

创建日期对象
var date=new Date();
date.getFullYear();获取年份
date.getYear();
date.getMonth()+1;获取月份   从0开始
date.getDate();获取日期
date.getDay();获取星期  从0开始  0就是星期日 1是星期1
date.getHours();获取小时
date.getMinutes();获取分钟
date.getSeconds();获取秒钟
date.getMilliseconds();获取毫秒
date.toLocaleString();转换为本地设置格式时间字符串
date.toUTCString();转换为格林尼治时间字符串
date.getTime();毫秒数,1970.1.1 0:0:0 到现在的毫秒数
 
倒计时
        var targetTime,times,ids;
        init();
        function init(){
            times=document.getElementById("times");
            var date=new Date();
            // 设置时间3小时后
            date.setHours(date.getHours()+3);
            // 获取这个时间的毫秒数,未来的时间戳,这个时间到1970.1.1的毫秒数
            targetTime=date.getTime();
            // 每16毫秒执行下面的函数
           ids=setInterval(enterFrame,16);
        }

        function enterFrame(){
            // 每间隔16毫秒执行这个函数
            // 重新获取当前的时间
            var date=new Date();
            // 重新获取当前时间戳 现在到1970.1.1的毫秒数
            var time=date.getTime();
            // console.log(targetTime-time);//10795679 毫秒
            // 用未来到1970.1.1的毫秒数-现在到1970.1.1的毫秒数,这个就是现在到未来的时间差毫秒数
            // 这是毫秒变成秒数,就要/1000,做四舍五入,进到秒
            time=Math.round((targetTime-time)/1000);
            // 10796 秒  1小时3600秒
                  // 1小时是3600秒  除3600向下取整就是小时数
            var hours=Math.floor(time/3600);
    //     1小时3600毫秒,除3600取余数,就是除了小时之外的所有秒数,除60是分钟
            var minutes=Math.floor((time%3600)/60);
            // 用当前秒-小时所用的秒-分所用的秒,就是剩余的秒数
            var seconds=time-hours*3600-minutes*60;
            times.innerHTML=(hours<10 ? "0"+hours : hours)+":"+
            (minutes<10 ? "0"+minutes : minutes)+":"+
            (seconds<10 ? "0"+seconds : seconds);
            if(hours+minutes+seconds===0){
                clearInterval(ids);
            }
        }

 

posted @ 2020-05-18 00:05  cruor  阅读(121)  评论(0编辑  收藏  举报