JS内建對象(Math,Number,String,Date)

Math方法

// 常量数据不能修改
console.log(Math.PI);
console.log(Math.SQRT2);
console.log(Math.SQRT1_2);
// Math.PI/180*60
​
// abs  绝对值  非负值
console.log(Math.abs(-5.352));
​
// 将小数点求整数
Math.ceil(); //向上舍入
Math.floor(); //向下舍入
Math.round(); //四舍五入
​
var a=3.54;
var a=-3.4    
//  -3.6    -4+0.4=-4 
//  -3.5   -4+0.5=-4+1=-3
console.log(Math.round(a));
var a=3.2;
console.log(Math.ceil(a));//整数+1
console.log(Math.floor(a));
​
// max  min
var max=Math.max(3,5,7);
console.log(max)
var min=Math(1,5,8);
​
var arr=[2,24,5,7,3,2,1,7,4,22,56];
var max=Math.max.apply(null,arr);
var min=Math.min.apply(null,arr);
console.log(max,min);
​
//sqrt 平方根   pow 幂
var n=Math.sqrt(4);
console.log(n);
​
var a=10;
var s=Math.pow(a,2);//多少次幂
var s=Math.pow(a,1/2);//平方根
var s=Math.pow(a,1/3);//立方根

Number方法

// Number.MAX_VALUE
// Number.MIN_VALUE
// Number.NaN
// NaN
​
var a=10;
a= a.toLocaleString();
console.log(a);
​
var a=356.274;
console.log(a.toPrecision(5));//1-21   四舍五入的作用
var a=0.0057;
console.log(a.toExponential(2));

String方法

var  str="aa";
var str1=new String("aa");
​
// 字符类型 正则表达式
// length 字符长度  只读
​
var str="abcd";
str.length=0;//ES6 报错
console.log(str.length);//只能获取不能修改
​
console.log(str[1]);//b
str[1]="e"  禁止使用这种方式修改字符串
​
console.log(str.charAt(1));//str[1];
​
console.log(str.concat("eeee"));//str+="eeee";
​
var age=10;
console.log("今年你"+age+"岁了");
console.log("今年你".concat(age,"岁了"));
​
console.log(str.indexOf("a"));//查找a字符是否在字符串中存在,如果不存在返回-1
str.indexOf("a",position);//从第几个开始查找
​
str.lastIndexOf("a")  从尾部向前查找
​
var arr=[
        {id:1001,name:"计算机",price:4999},
        {id:1002,name:"电机",price:1999},
        {id:1003,name:"记事本",price:9},
        {id:1004,name:"课本",price:99},
        {id:1005,name:"计算器",price:149},
    ];
var arr1=arr.filter(function(item){
    return item.name.indexOf("本")>-1;
})
console.log(arr1); 
var str="abcd";
console.log(str.charCodeAt(0));//获取下标是0的字符的Unicode编码
​
String.fromCharCode(97); //编码转换为字符串
​
// replace
var str="abcdefcd";
str=str.replace("b","z");//字符串的方法不能修改原字符,返回替换后的新字符串
str=str.replace("c","z");//暂时只能替换一个字符
str=str.replace("c","c1");//既是替换又是插入字符
str=str.replace("cd",function(item){
    console.log(item);
    return item+"1";
}) 
console.log(str);
​
var str="abcde";
var index=str.search("a");
//search可以用于正则表达式查找
​
// 字符串的正则表达式,将查找的结果以数组的形式返回
var arr=str.match("c")
console.log(arr);
​
// slice 和数组的slice等同
//隨機顔色
function randomColor(){
    var col="#";
    for(var i=0;i<6;i++){
        col+=Math.floor(Math.random()*16).toString(16);
    }
    return col; 
} 
function randomColor(){
    var col="rgb(";
    for(var i=0;i<3;i++){
        col+=Math.floor(Math.random()*256)+","
    }
    col=col.slice(0,-1)+")";
    return col;
} 
function randomColor(){
    return "#"+Array(6).fill(Math.floor(Math.random()*16).toString(16)).join("");
} 
​
<style>
    div{
        width: 100px;
        height: 100px;
    }
</style>
<div id="div0"></div>
var div0=document.getElementById("div0");
div0.style.backgroundColor=randomColor();
div0.onclick=function(){
    div0.style.backgroundColor=randomColor();
} 
​
​
var str="abcdefg";
str=str.substring(start,end);//截取字符串从start到end结束
// substring,start和end都不支持负数,负数代表0之前,就是最前面
// slice只能从前向后选
// substring可以从后向前选
console.log(str.substring(5,2))
var str="中国的四大名著中《西游记》是吴承恩写的";
str=str.substring(str.indexOf("《")+1,str.indexOf("》"));
console.log(str);
​
str.substr(start,length);//截取从字符串start开始,按照给出长度截取固定的字符串
str=str.substr(str.indexOf("《")+1,3);
console.log(str);
​
console.log(str.toUpperCase());
console.log("XIETIAN".toLowerCase());
​
// split  切割,使用某个符号切割,和数组的join相反
var arr=[1,2,3,4,5,6];
var str=arr.join("#");
console.log(str);
var arr1=str.split("#");
console.log(arr1);
​
var str="abcdef";
var arr=str.split("");
console.log(arr); 
​
// 转换成数组,然后反转,然后再用""连接
str=str.split("").reverse().join("");
console.log(str);
​
var url="https://detail.tmall.com/item.htm?id=570063940353&ali_refid=a3_430406_1007:116401153:J:157145175_0_1069023083:ddc80320c499f96850f409bbea969fa6&ali_trackid=85_ddc80320c499f96850f409bbea969fa6&spm=a21bo.2017.201874-sales.15";
// queryString
​
function getURLPram(url){
    url=url.split("?")[1];
    var obj={};
    var arr=url.split("&");
    for(var i=0;i<arr.length;i++){
        var str=arr[i];
        var arr1=str.split("=");
        obj[arr1[0]]=arr1[1];
    }
    return obj;
} 
​
function getURLPram(url){
    return url.split("?")[1].split("&").reduce(function(value,item){
        var arr=item.split("=");
        value[arr[0]]=arr[1];
        return value;
    },{})
} 
​
var obj= getURLPram(url);
console.log(obj); 

Date對象

var date=new Date();
console.log(date);
var year=date.getFullYear();
var month=date.getMonth();//0-11
var day=date.getDate();//日期
var week=date.getDay();//星期  0-6  0星期日
var hour=date.getHours();
var minutes=date.getMinutes();
var second=date.getSeconds();
var ms=date.getMilliseconds();
​
var h=date.getUTCHours();
​
var time=date.getTime();//时间戳 从1970.1.1到现在的毫秒数
// 永远不重复,唯一
console.log(h);
​
var url="....?time="+new Date().getTime();
​
function fn1(){
    var s=0;
    for(var i=0;i<1000;i++){
        s+=i;
    }
}
​
function fn2(s,i){
    if(!s) s=0;
    if(!i) i=0;
    i++;
    s+=i;
    if(i<1000) fn2(s,i); 
}
​
var time=new Date().getTime();
Utils.timeStart();
​
var id1=Utils.ts();
for(var i=0;i<10000;i++){
   fn1();
}
console.log(Utils.timeEnd());
console.log(new Date().getTime()-time);
time=new Date().getTime();
Utils.timeStart();
​
var id2=Utils.ts();
for(var j=0;j<10000;j++){
    fn2();
}
​
console.log(Utils.te(id2));
console.log(Utils.te(id1));
​
console.log(Utils.timeEnd());
console.log(new Date().getTime()-time);
​
var date=new Date();
console.log(date.toLocaleString());//转换为本地时间
console.log(date.toUTCString());//转换为格林尼治时间,后面的cookie使用
​
var date=new Date();
// 任何设置如果数值大于该值域的最大值时,就会进位
date.setFullYear(2021);
date.setMonth(12);
console.log(date);
date.setMinutes(date.getMinutes()+30);//设置30分钟后
​
// 每次new Date就会获取new这个时间的当时值
​
var date=new Date();
console.log(date.getSeconds());
​
setTimeout(function(){
    var d=new Date();
    console.log(d.getSeconds());
},2000) 

 秒表案例

<style>
    #timeCon
    {
        font-size: 25px;
        font-weight: 700;
    }
</style>
<div id="timeCon">00:00:00</div>
<button id="startBn">启动</button> <button id="resetBn">复位</button>
<script>
        var startBn,
            timeCon,
            resetBn,
            temptime=0,
            startTime=0,
            bool=true;
        init();
        function init(){
            startBn=document.getElementById("startBn");
            timeCon=document.getElementById("timeCon");
            resetBn=document.getElementById("resetBn");
            startBn.onclick=clickHandler;
            resetBn.onclick=resetClickHandler;
            setInterval(animation,16);
        }
        function clickHandler(){
            bool=!bool;
            if(bool){
                startBn.innerHTML="启动"
                temptime+=new Date().getTime()-startTime;
                startTime=0;
            }else{
                startBn.innerHTML="暂停"
                startTime=new Date().getTime();
            }
        }
        function resetClickHandler(){
            bool=true;
            temptime=0;
            startTime=0;
            timeCon.innerHTML="00:00:00";
            startBn.innerHTML="启动"
        }
        function animation(){
            if(bool) return;
            var time=new Date().getTime();
            var s=Math.floor((time-startTime+temptime)/1000);
            var m=Math.floor(s/60);
            s=s%60;
             var ms=Math.floor((time-startTime+temptime)%1000/10);
             timeCon.innerHTML=(m<10 ? "0"+m : m)+":"+(s<10 ? "0"+s : s)+":"+(ms<10 ? "0"+ms : ms)
        }
</script>

 

posted @ 2020-07-14 17:29  菠蘿的旅行  阅读(155)  评论(0编辑  收藏  举报