js數(shù)組方法大全
JavaScript中創(chuàng)建數(shù)組有兩種方式
(一)使用 Array 構(gòu)造函數(shù):
var arr1 = new Array(); //創(chuàng)建一個(gè)空數(shù)組
var arr2 = new Array(20); // 創(chuàng)建一個(gè)包含20項(xiàng)的數(shù)組
var arr3 = new Array("lily","lucy","Tom"); // 創(chuàng)建一個(gè)包含3個(gè)字符串的數(shù)組
(二)使用數(shù)組字面量表示法:
var arr4 = []; //創(chuàng)建一個(gè)空數(shù)組
var arr5 = [20]; // 創(chuàng)建一個(gè)包含1項(xiàng)的數(shù)組
var arr6 = ["lily","lucy","Tom"]; // 創(chuàng)建一個(gè)包含3個(gè)字符串的數(shù)組
數(shù)組的方法有數(shù)組原型方法,也有從object對(duì)象繼承來(lái)的方法拾并,這里我們只介紹數(shù)組的原型方法揍堰,數(shù)組原型方法主要有以下這些:
join()
push()和pop()
shift() 和 unshift()
sort()
reverse()
concat()
slice()
splice()
indexOf()和 lastIndexOf() (ES5新增)
forEach() (ES5新增)
map() (ES5新增)
filter() (ES5新增)
every() (ES5新增)
some() (ES5新增)
reduce()和 reduceRight() (ES5新增)
下面詳細(xì)介紹一下各個(gè)方法的基本功能。
1嗅义、join()
join(separator): 將數(shù)組的元素組起一個(gè)字符串个榕,以separator為分隔符,省略的話則用默認(rèn)用逗號(hào)為分隔符芥喇,該方法只接收一個(gè)參數(shù):即分隔符。
var?arr = [1,2,3];
console.log(arr.join()); // 1,2,3
console.log(arr.join("-")); // 1-2-3
console.log(arr); // [1, 2, 3](原數(shù)組不變)
通過(guò)join()方法可以實(shí)現(xiàn)重復(fù)字符串凰萨,只需傳入字符串以及重復(fù)的次數(shù)继控,就能返回重復(fù)后的字符串械馆,函數(shù)如下:
function?repeatString(str, n) {
return?new?Array(n + 1).join(str);
}
console.log(repeatString("abc", 3)); // abcabcabc
console.log(repeatString("Hi", 5)); // HiHiHiHiHi
2、push()和pop()
push(): 可以接收任意數(shù)量的參數(shù)武通,把它們逐個(gè)添加到數(shù)組末尾霹崎,并返回修改后數(shù)組的長(zhǎng)度。
pop():數(shù)組末尾移除最后一項(xiàng)冶忱,減少數(shù)組的 length 值尾菇,然后返回移除的項(xiàng)。
var?arr = ["Lily","lucy","Tom"];
var?count = arr.push("Jack","Sean");
console.log(count); // 5
console.log(arr); // ["Lily", "lucy", "Tom", "Jack", "Sean"]
var?item = arr.pop();
console.log(item); // Sean
console.log(arr); // ["Lily", "lucy", "Tom", "Jack"]
3囚枪、shift() 和 unshift()
shift():刪除原數(shù)組第一項(xiàng)派诬,并返回刪除元素的值;如果數(shù)組為空則返回undefined 链沼。
unshift:將參數(shù)添加到原數(shù)組開(kāi)頭默赂,并返回?cái)?shù)組的長(zhǎng)度 。
這組方法和上面的push()和pop()方法正好對(duì)應(yīng)括勺,一個(gè)是操作數(shù)組的開(kāi)頭缆八,一個(gè)是操作數(shù)組的結(jié)尾。
var?arr = ["Lily","lucy","Tom"];
var?count = arr.unshift("Jack","Sean");
console.log(count); // 5
console.log(arr); //["Jack", "Sean", "Lily", "lucy", "Tom"]
var?item = arr.shift();
console.log(item); // Jack
console.log(arr); // ["Sean", "Lily", "lucy", "Tom"]
4疾捍、sort()
sort():按升序排列數(shù)組項(xiàng)——即最小的值位于最前面奈辰,最大的值排在最后面。
在排序時(shí)乱豆,sort()方法會(huì)調(diào)用每個(gè)數(shù)組項(xiàng)的 toString()轉(zhuǎn)型方法奖恰,然后比較得到的字符串,以確定如何排序咙鞍。即使數(shù)組中的每一項(xiàng)都是數(shù)值房官, sort()方法比較的也是字符串,因此會(huì)出現(xiàn)以下的這種情況:
var?arr1 = ["a", "d", "c", "b"];
console.log(arr1.sort()); // ["a", "b", "c", "d"]
arr2 = [13, 24, 51, 3];
console.log(arr2.sort()); // [13, 24, 3, 51]
console.log(arr2); // [13, 24, 3, 51](元數(shù)組被改變)
為了解決上述問(wèn)題续滋,sort()方法可以接收一個(gè)比較函數(shù)作為參數(shù)翰守,以便我們指定哪個(gè)值位于哪個(gè)值的前面。比較函數(shù)接收兩個(gè)參數(shù)疲酌,如果第一個(gè)參數(shù)應(yīng)該位于第二個(gè)之前則返回一個(gè)負(fù)數(shù)蜡峰,如果兩個(gè)參數(shù)相等則返回 0,如果第一個(gè)參數(shù)應(yīng)該位于第二個(gè)之后則返回一個(gè)正數(shù)朗恳。以下就是一個(gè)簡(jiǎn)單的比較函數(shù):
function?compare(value1, value2) {
if?(value1 < value2) {
return?-1;
} else?if?(value1 > value2) {
return?1;
} else?{
return?0;
}
}
arr2 = [13, 24, 51, 3];
console.log(arr2.sort(compare)); // [3, 13, 24, 51]
如果需要通過(guò)比較函數(shù)產(chǎn)生降序排序的結(jié)果湿颅,只要交換比較函數(shù)返回的值即可:
function?compare(value1, value2) {
if?(value1 < value2) {
return?1;
} else?if?(value1 > value2) {
return?-1;
} else?{
return?0;
}
}
arr2 = [13, 24, 51, 3];
console.log(arr2.sort(compare)); // [51, 24, 13, 3]
5、reverse()
reverse():反轉(zhuǎn)數(shù)組項(xiàng)的順序粥诫。
var?arr = [13, 24, 51, 3];
console.log(arr.reverse()); //[3, 51, 24, 13]
console.log(arr); //[3, 51, 24, 13](原數(shù)組改變)
6油航、concat()
concat() :將參數(shù)添加到原數(shù)組中。這個(gè)方法會(huì)先創(chuàng)建當(dāng)前數(shù)組一個(gè)副本怀浆,然后將接收到的參數(shù)添加到這個(gè)副本的末尾谊囚,最后返回新構(gòu)建的數(shù)組怕享。在沒(méi)有給 concat()方法傳遞參數(shù)的情況下,它只是復(fù)制當(dāng)前數(shù)組并返回副本镰踏。
var?arr = [1,3,5,7];
var?arrCopy = arr.concat(9,[11,13]);
console.log(arrCopy); //[1, 3, 5, 7, 9, 11, 13]
console.log(arr); // [1, 3, 5, 7](原數(shù)組未被修改)
從上面測(cè)試結(jié)果可以發(fā)現(xiàn):傳入的不是數(shù)組函筋,則直接把參數(shù)添加到數(shù)組后面,如果傳入的是數(shù)組奠伪,則將數(shù)組中的各個(gè)項(xiàng)添加到數(shù)組中跌帐。但是如果傳入的是一個(gè)二維數(shù)組呢?
var?arrCopy2 = arr.concat([9,[11,13]]);
console.log(arrCopy2); //[1, 3, 5, 7, 9, Array[2]]
console.log(arrCopy2[5]); //[11, 13]
上述代碼中绊率,arrCopy2數(shù)組的第五項(xiàng)是一個(gè)包含兩項(xiàng)的數(shù)組谨敛,也就是說(shuō)concat方法只能將傳入數(shù)組中的每一項(xiàng)添加到數(shù)組中,如果傳入數(shù)組中有些項(xiàng)是數(shù)組即舌,那么也會(huì)把這一數(shù)組項(xiàng)當(dāng)作一項(xiàng)添加到arrCopy2中佣盒。
7、slice()
slice():返回從原數(shù)組中指定開(kāi)始下標(biāo)到結(jié)束下標(biāo)之間的項(xiàng)組成的新數(shù)組顽聂。slice()方法可以接受一或兩個(gè)參數(shù)肥惭,即要返回項(xiàng)的起始和結(jié)束位置。在只有一個(gè)參數(shù)的情況下紊搪, slice()方法返回從該參數(shù)指定位置開(kāi)始到當(dāng)前數(shù)組末尾的所有項(xiàng)蜜葱。如果有兩個(gè)參數(shù),該方法返回起始和結(jié)束位置之間的項(xiàng)——但不包括結(jié)束位置的項(xiàng)耀石。
var?arr = [1,3,5,7,9,11];
var?arrCopy = arr.slice(1);
var?arrCopy2 = arr.slice(1,4);
var?arrCopy3 = arr.slice(1,-2);
var?arrCopy4 = arr.slice(-4,-1);
console.log(arr); //[1, 3, 5, 7, 9, 11](原數(shù)組沒(méi)變)
console.log(arrCopy); //[3, 5, 7, 9, 11]
console.log(arrCopy2); //[3, 5, 7]
console.log(arrCopy3); //[3, 5, 7]
console.log(arrCopy4); //[5, 7, 9]
arrCopy只設(shè)置了一個(gè)參數(shù)牵囤,也就是起始下標(biāo)為1,所以返回的數(shù)組為下標(biāo)1(包括下標(biāo)1)開(kāi)始到數(shù)組最后滞伟。
arrCopy2設(shè)置了兩個(gè)參數(shù)揭鳞,返回起始下標(biāo)(包括1)開(kāi)始到終止下標(biāo)(不包括4)的子數(shù)組。
arrCopy3設(shè)置了兩個(gè)參數(shù)梆奈,終止下標(biāo)為負(fù)數(shù)野崇,當(dāng)出現(xiàn)負(fù)數(shù)時(shí),將負(fù)數(shù)加上數(shù)組長(zhǎng)度的值(6)來(lái)替換該位置的數(shù)亩钟,因此就是從1開(kāi)始到4(不包括)的子數(shù)組乓梨。
arrCopy4中兩個(gè)參數(shù)都是負(fù)數(shù),所以都加上數(shù)組長(zhǎng)度6轉(zhuǎn)換成正數(shù)清酥,因此相當(dāng)于slice(2,5)扶镀。
8、splice()
splice():很強(qiáng)大的數(shù)組方法焰轻,它有很多種用法臭觉,可以實(shí)現(xiàn)刪除、插入和替換。
刪除:可以刪除任意數(shù)量的項(xiàng)蝠筑,只需指定 2 個(gè)參數(shù):要?jiǎng)h除的第一項(xiàng)的位置和要?jiǎng)h除的項(xiàng)數(shù)忆肾。例如, splice(0,2)會(huì)刪除數(shù)組中的前兩項(xiàng)菱肖。
插入:可以向指定位置插入任意數(shù)量的項(xiàng),只需提供 3 個(gè)參數(shù):起始位置旭从、 0(要?jiǎng)h除的項(xiàng)數(shù))和要插入的項(xiàng)稳强。例如,splice(2,0,4,6)會(huì)從當(dāng)前數(shù)組的位置 2 開(kāi)始插入4和6和悦。
替換:可以向指定位置插入任意數(shù)量的項(xiàng)退疫,且同時(shí)刪除任意數(shù)量的項(xiàng),只需指定 3 個(gè)參數(shù):起始位置鸽素、要?jiǎng)h除的項(xiàng)數(shù)和要插入的任意數(shù)量的項(xiàng)褒繁。插入的項(xiàng)數(shù)不必與刪除的項(xiàng)數(shù)相等。例如馍忽,splice (2,1,4,6)會(huì)刪除當(dāng)前數(shù)組位置 2 的項(xiàng)棒坏,然后再?gòu)奈恢?2 開(kāi)始插入4和6。
splice()方法始終都會(huì)返回一個(gè)數(shù)組遭笋,該數(shù)組中包含從原始數(shù)組中刪除的項(xiàng)坝冕,如果沒(méi)有刪除任何項(xiàng),則返回一個(gè)空數(shù)組瓦呼。
var?arr = [1,3,5,7,9,11];
var?arrRemoved = arr.splice(0,2);
console.log(arr); //[5, 7, 9, 11]
console.log(arrRemoved); //[1, 3]
var?arrRemoved2 = arr.splice(2,0,4,6);
console.log(arr); // [5, 7, 4, 6, 9, 11]
console.log(arrRemoved2); // []
var?arrRemoved3 = arr.splice(1,1,2,4);
console.log(arr); // [5, 2, 4, 4, 6, 9, 11]
console.log(arrRemoved3); //[7]
9喂窟、indexOf()和 lastIndexOf()
indexOf():接收兩個(gè)參數(shù):要查找的項(xiàng)和(可選的)表示查找起點(diǎn)位置的索引。其中央串, 從數(shù)組的開(kāi)頭(位置 0)開(kāi)始向后查找磨澡。
lastIndexOf:接收兩個(gè)參數(shù):要查找的項(xiàng)和(可選的)表示查找起點(diǎn)位置的索引。其中质和, 從數(shù)組的末尾開(kāi)始向前查找稳摄。
這兩個(gè)方法都返回要查找的項(xiàng)在數(shù)組中的位置,或者在沒(méi)找到的情況下返回?1侦另。在比較第一個(gè)參數(shù)與數(shù)組中的每一項(xiàng)時(shí)秩命,會(huì)使用全等操作符。
var?arr = [1,3,5,7,7,5,3,1];
console.log(arr.indexOf(5)); //2
console.log(arr.lastIndexOf(5)); //5
console.log(arr.indexOf(5,2)); //2
console.log(arr.lastIndexOf(5,4)); //2
console.log(arr.indexOf("5")); //-1
10褒傅、forEach()
forEach():對(duì)數(shù)組進(jìn)行遍歷循環(huán)弃锐,對(duì)數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù)。這個(gè)方法沒(méi)有返回值殿托。參數(shù)都是function類型霹菊,默認(rèn)有傳參,參數(shù)分別為:遍歷的數(shù)組內(nèi)容;第對(duì)應(yīng)的數(shù)組索引旋廷,數(shù)組本身鸠按。
var?arr = [1, 2, 3, 4, 5];
arr.forEach(function(x, index, a){
console.log(x + '|'?+ index + '|'?+ (a === arr));
});
// 輸出為:
// 1|0|true
// 2|1|true
// 3|2|true
// 4|3|true
// 5|4|true
11、map()
map():指“映射”饶碘,對(duì)數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù)目尖,返回每次函數(shù)調(diào)用的結(jié)果組成的數(shù)組。
下面代碼利用map方法實(shí)現(xiàn)數(shù)組中每個(gè)數(shù)求平方扎运。
var?arr = [1, 2, 3, 4, 5];
var?arr2 = arr.map(function(item){
return?item*item;
});
console.log(arr2); //[1, 4, 9, 16, 25]
12瑟曲、filter()
filter():“過(guò)濾”功能,數(shù)組中的每一項(xiàng)運(yùn)行給定函數(shù)豪治,返回滿足過(guò)濾條件組成的數(shù)組洞拨。
var?arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var?arr2 = arr.filter(function(x, index) {
return?index % 3 === 0 || x >= 8;
});
console.log(arr2); //[1, 4, 7, 8, 9, 10]
13、every()
every():判斷數(shù)組中每一項(xiàng)都是否滿足條件负拟,只有所有項(xiàng)都滿足條件烦衣,才會(huì)返回true。
var?arr = [1, 2, 3, 4, 5];
var?arr2 = arr.every(function(x) {
return?x < 10;
});
console.log(arr2); //true
var?arr3 = arr.every(function(x) {
return?x < 3;
});
console.log(arr3); // false
14掩浙、some()
some():判斷數(shù)組中是否存在滿足條件的項(xiàng)花吟,只要有一項(xiàng)滿足條件,就會(huì)返回true涣脚。
var?arr = [1, 2, 3, 4, 5];
var?arr2 = arr.some(function(x) {
return?x < 3;
});
console.log(arr2); //true
var?arr3 = arr.some(function(x) {
return?x < 1;
});
console.log(arr3); // false
15示辈、reduce()和 reduceRight()
這兩個(gè)方法都會(huì)實(shí)現(xiàn)迭代數(shù)組的所有項(xiàng),然后構(gòu)建一個(gè)最終返回的值遣蚀。reduce()方法從數(shù)組的第一項(xiàng)開(kāi)始矾麻,逐個(gè)遍歷到最后。而 reduceRight()則從數(shù)組的最后一項(xiàng)開(kāi)始芭梯,向前遍歷到第一項(xiàng)险耀。
這兩個(gè)方法都接收兩個(gè)參數(shù):一個(gè)在每一項(xiàng)上調(diào)用的函數(shù)和(可選的)作為歸并基礎(chǔ)的初始值。
傳給 reduce()和 reduceRight()的函數(shù)接收 4 個(gè)參數(shù):前一個(gè)值玖喘、當(dāng)前值甩牺、項(xiàng)的索引和數(shù)組對(duì)象。這個(gè)函數(shù)返回的任何值都會(huì)作為第一個(gè)參數(shù)自動(dòng)傳給下一項(xiàng)累奈。第一次迭代發(fā)生在數(shù)組的第二項(xiàng)上贬派,因此第一個(gè)參數(shù)是數(shù)組的第一項(xiàng),第二個(gè)參數(shù)就是數(shù)組的第二項(xiàng)澎媒。
下面代碼用reduce()實(shí)現(xiàn)數(shù)組求和搞乏,數(shù)組一開(kāi)始加了一個(gè)初始值10。
var?values = [1,2,3,4,5];
var?sum = values.reduceRight(function(prev, cur, index, array){
return?prev + cur;
},10);
console.log(sum); //25
JS字符串常用方法總結(jié)
動(dòng)態(tài)方法:1戒努、str.charAt(index);?返回子字符串请敦,index為字符串下標(biāo),index取值范圍[0,str.length-1]
動(dòng)態(tài)方法:2、str.charCodeAt(index);?返回子字符串的unicode編碼侍筛,index取值范圍同上
靜態(tài)方法:3萤皂、String.fromCharCode(num1,num2,...,numN);?根據(jù)unicode編碼返回字符串
varstr = $("input").val();
if(detectNum(str))
{
alert("是數(shù)字");
}function detectNum(str1)
{
varn = 0;
for(vari=0;i
{
n=str1.charCodeAt(i);
if(n<48 || n>57)
{
returnfalse;
}
}
returntrue;
}
4、str.indexOf(searchString,startIndex); ?返回子字符串第一次出現(xiàn)的位置匣椰,從startIndex開(kāi)始查找裆熙,找不到時(shí)返回-1
5、str.lastIndexOf(searchString,startIndex); ?從由往左找子字符串禽笑,找不到時(shí)返回-1
由于以上兩個(gè)方法只能返回1次弛车,當(dāng)需要將一段字符串里的所有searchString出現(xiàn)的位置都查找出來(lái)時(shí),這樣做:
varstr = "........";vars = "妙味";vari = 0;for( ; str.indexOf(s,i) != -1; )
{ console.log(str.indexOf(s,i)); i
= str.indexOf(s,i) + s.length;
}
6蒲每、字符串之間的比較:比較第一個(gè)字符的unicode編碼值,第一個(gè)字符要是相同喻括,就比較第二個(gè)邀杏,依次往下
'10000' < '2' ? 1的unicode值比2的unicode值小 ?true
'10000' > 2 ? ?轉(zhuǎn)成數(shù)字比較 ?true
7、截取字符串
str.substring(start,end); ?兩個(gè)參數(shù)都為正數(shù)唬血,返回值:[start,end) 也就是說(shuō)返回從start到end-1的字符
str.slice(start,end); ?兩個(gè)參數(shù)可正可負(fù)望蜡,負(fù)值代表從右截取,返回值:[start,end) 也就是說(shuō)返回從start到end-1的字符
不建議用:str.substr(start,length); ?start參數(shù)可正可負(fù)拷恨,負(fù)數(shù)代表從右截取
除了 slice() 和 substr() 方法里的負(fù)值是代表從右截取脖律,其他方法里的負(fù)值一律作為0處理
【引申】:截取數(shù)組
arr.slice(start,end); ?兩個(gè)參數(shù)可正可負(fù),負(fù)值代表從右截取腕侄,返回值:[start,end) 也就是說(shuō)返回從start到end-1的字符
⌒∪:開(kāi)關(guān)的寫(xiě)法
varonOff =true;
$("button").click(function()
{
if()
{
}else{
}
onOff = !onOff;
});
8、字符串分割成數(shù)組
str.split(separator,limit); ?參數(shù)1指定字符串或正則冕杠,參照2指定數(shù)組的最大長(zhǎng)度
例:str.split(""); ?每個(gè)字符都被分割 ?['','','','']
str.split(); ? ?整個(gè)字符串放到數(shù)組里 ?['']
【引申】:數(shù)組變成字符串
arr.join(分隔符) ? ? ?以,連接
arr.join('') ? ? ? ? ? ?無(wú)縫連接
arr.join('-') ? ? ? ? ?以-連接
arr.join('<span>' + str + '</span>') ? ? ? 以表達(dá)式連接
9微姊、str.replace(rgExp/substr,replaceText) ? 返回替換后的字符串
10、str.match(rgExp); ?正則匹配
Date對(duì)象和Math對(duì)象
展開(kāi)
一分预、創(chuàng)建Date對(duì)象
var time=new Date()? ? ? //? 獲取的是當(dāng)前時(shí)間
var time=new Date(2000)? ? // 1970年1月1日 8時(shí)0分2秒? ? ? 20000是毫秒數(shù)
var time=new Date(98,10,20,0,0,0)? ? ? //? 1998年10月10日 0時(shí)0分0秒
1
2
3
4
二兢交、Date對(duì)象的方法
分3大組:
getXxx() : 用于獲取時(shí)間和日期值
setXxx() : 用于設(shè)置時(shí)間和日期值
toXxx() : 將日期轉(zhuǎn)換成指定格式
1. getXxx()
創(chuàng)建date對(duì)象,賦值給變量time
var time=new Date()? // 獲取當(dāng)前時(shí)間
? ? document.write(time.toLocaleString())? //? 2019/6/12 上午10:36:54
1
2
1.獲取年份
var year=time.getFullYear()?
? ? console.log(year)? // 2019年
1
2
2.獲取月份
var month=time.getMonth()? // 范圍是0~11 所以獲取的月份后面應(yīng)該+1
? ? console.log(month+1)? // 6月
1
2
3.獲取日期(某月份的多少號(hào))
var day=time.getDate()? // 范圍是1~31號(hào)
? ? console.log(day)? // 12號(hào)
1
2
4.獲取星期幾
var week=time.getDay()? // 范圍是0~6
? ? console.log(week)? // 3? 星期三
1
2
5.獲取小時(shí)
var hour=time.getHours()? // 范圍是0~23
? ? console.log(hour)? // 10(早上10點(diǎn))
1
2
6.獲取分鐘
var minute=time.getMinutes()? // 范圍是0~59
? ? console.log(minute)? // 44(第44分鐘)
1
2
7.獲取秒數(shù)
var second=time.getSeconds()? // 獲取秒數(shù),范圍是0~59
? ? var millisecond=time.getMilliseconds()? // 獲取毫秒數(shù)笼痹,范圍是0~999
? ? console.log(second)? //? 28(第28分鐘)
? ? console.log(millisecond)? //? 856(第856毫秒)
8.獲取1970年1月1日至今的毫秒數(shù)
var a=time.getTime()
? ? console.log(a)? // 1560307994292(毫秒)
2. setXxx()
…
3. toXxx()
1.根據(jù)本地時(shí)間配喳,將Date對(duì)象轉(zhuǎn)換為字符串
var time=new Date()? // 獲取當(dāng)前時(shí)間
? ? document.write(time)? // Wed Jun 12 2019 10:58:00 GMT+0800 (中國(guó)標(biāo)準(zhǔn)時(shí)間)
? ? document.write(time.toLocaleString())? //? 2019/6/12 上午10:36:54
三、Math對(duì)象的方法
ceil(x) : 對(duì)數(shù)進(jìn)行上舍入=往大的取
var a=3.1
? ? a=Math.ceil(a)
? ? console.log(a)? // 4
floor(x) : 對(duì)數(shù)進(jìn)行下舍入=往小的取
var b=3.9
? ? b=Math.floor(b)
? ? console.log(b)? // 3
round(x) : 四舍五入
var c=3.6
? ? c=Math.round(c)
? ? console.log(c)? // 4? 隨機(jī)
random() 返回0~1的隨機(jī)數(shù) [ 0 , 1 )
parseInt(Math.random()*10) 隨機(jī)整數(shù)[ 0 , 10 )
parseInt(Math.random()*4+1) 隨機(jī)整數(shù)[ 1 , 5 )
parseInt(Math.random()*(max-min)+min) 隨機(jī)整數(shù) [ min , max )
parseInt(Math.random()*(max-min+1)+min) 隨機(jī)整數(shù) [ min , max ]
Math & Date & 定時(shí)器
原創(chuàng)零碎゛記憶 凳干。 最后發(fā)布于2019-03-14 20:27:24 閱讀數(shù) 31? 收藏
展開(kāi)
Math對(duì)象方法
Math.PI //3.1415926
round() //四舍五入
ceil() //向上取整
floor() //向下取整
fandom() //返回0-1之間的隨機(jī)數(shù)(不包括1)
max() //返回較大的數(shù)
min() //返回較小的數(shù)
abs() //絕對(duì)值
pow(x,y) //x的y次方
sqrt(unm) //開(kāi)平方
sin(radian)
cos(radian)
can(radian) //radian:弧度
日期
創(chuàng)建日期
(1) var d = new Date
得到本地時(shí)間
(2) var d = new Date(“2017/10/10 12:10:00”)
傳入字符串晴裹,返回特定的時(shí)間對(duì)象
(3) var d = new Data(56264946884);
傳入距離1970年1月1日0時(shí)0分0秒的毫秒數(shù),返回特定的時(shí)間對(duì)象
日期對(duì)象的獲取的方法
(1) d.getFullYear() 獲取年份
(2) d.getMonth() 獲取月份纺座,0-11代表1到12月
(3) d.getDate() 獲取日
(4) d.getDay() 獲取星期幾得到0-6息拜,星期天到星期六
(5) d.getHours() 獲取小時(shí)
(6) d.getMinutes() 獲取分鐘
(7) d.getSeconds() 獲取秒
(8) d.getTime() 獲取某個(gè)日期自1970年1月1日0時(shí)以來(lái)的毫秒數(shù)
日期對(duì)象的設(shè)置方法
(1) d.setFullYear() 設(shè)置年份
(2) d.setMonth() 設(shè)置月份,0-11代表1到12月
(3) d.setDate() 設(shè)置日
(4) d.setHours() 設(shè)置小時(shí)
(5) d.setMinutes() 設(shè)置分鐘
(6) d.setSeconds() 設(shè)置秒
(7) d.setTime() 修改某個(gè)日期自1970年1月1日0時(shí)以來(lái)的毫秒數(shù)
定時(shí)器
(1) setInterval(fn, time)
每隔time毫秒執(zhí)行一次函數(shù),間隔執(zhí)行 time為毫秒數(shù)
(2) setTimeout(fn,time)
延遲time毫秒執(zhí)行函數(shù)少欺,只執(zhí)行一次
(3) clearInterval(變量名)
清空變量名對(duì)應(yīng)的定時(shí)器
(4) clearTimeout(變量名)
清空變量對(duì)應(yīng)的定時(shí)器
es5獲取毫秒數(shù)(靜態(tài)方法)
(1) Date.parse(“2020-01-01 00:00:00”)
獲取特定日期距離1970年的毫秒數(shù)
(2) Date.now()
獲取當(dāng)前日期距離1970年的毫秒數(shù)