1. 程式人生 > 實用技巧 >JS內建物件

JS內建物件

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)