網(wǎng)易微專業(yè)之《前端工程師》學(xué)習(xí)筆記(10)-JS的常用方法清單

慢慢補(bǔ)充。。。

目錄

  • 正則
  • Array的方法
  • String的方法
  • Math的方法
  • Date的方法

正則

《網(wǎng)易微專業(yè)之《前端工程師》學(xué)習(xí)筆記(12)-JS正則》

Array的方法

《JavaScript 數(shù)組常用方法介紹》

String的方法

《JavaScript 字符串常用方法介紹》

Math的方法

(1)Math.max()和Math.min();
max()和min()方法用于確定一組數(shù)值中的最大值和最小值。這兩個(gè)方法都可以接收任意多個(gè)數(shù)值參數(shù),比如下面的栗子。


var max=Math.max(3,54,32,16);
alert(max);   //54

var min=Math.min(3,54,32,16);
alert(min);   //3


這兩個(gè)方法經(jīng)常用于避免多余循環(huán)和在if語句中確定一組數(shù)的最值。

另外要找到數(shù)組中的最大或最小值,可以像下面這樣使用apply()方法。

var values=[1,2,3,4,5,6,7,8];
var max=Math.max.apply(Math,values);

apply函數(shù)中的第一個(gè)參數(shù)為函數(shù)所屬對象,通常為當(dāng)前頁面(this)。用上面這個(gè)技巧的關(guān)鍵是把Math對象作為apply()的第一個(gè)參數(shù),從而正確設(shè)置this值。第二個(gè)參數(shù)為傳入到函數(shù)中的參數(shù)數(shù)組(必須為數(shù)組)。

(2)舍入方法
指的是,math中將小數(shù)值舍入為整數(shù)的幾個(gè)方法:Math.ceil()、Math.floor()和Math.round()。

  • Math.ceil()是向上取整;
  • Math.floor()是向下取整;
  • Math.round()是數(shù)學(xué)課上的正常的四舍五入;
Math.ceil(1.1);//2
Math.ceil(1.9);//2

Math.floor(25.1) //25
Math.floor(25.9) //25

Math.round(25.1) //25
Math.round(25.9) //26

再來來看看應(yīng)用的實(shí)例:

var numVar=2;
var numVar2=3.5;
var numVar3=-80.6;

document.write("3.5的floor()值為"+Math.floor(numVar2)+"<br/>");

(3)Math.random()

Math.random()方法返回大于等于0小于1的一個(gè)隨機(jī)數(shù)。對于某些站點(diǎn)來說,這個(gè)方法非常實(shí)用,因?yàn)榭梢岳盟鼇黼S機(jī)顯示一些名人名言和新聞事件。

用下面的公式“

值=Math.floor(Math.random()*可能值的總數(shù)+第一個(gè)可能的值)

公式中用到Math.floor()這個(gè)將小數(shù)向下取整的方法,是因?yàn)镸ath.random()總是返回一個(gè)小數(shù)值,而用這個(gè)小數(shù)值乘以一個(gè)整數(shù),然后再加上一個(gè)整數(shù),最終的結(jié)果仍然還是一個(gè)小數(shù)。

舉個(gè)栗子,假如你想選擇一個(gè)1到10之間的數(shù)值,可以像下面的代碼那樣寫:

var num=Math.floor(Math.random()*10+1);

分析一下:總共有10個(gè)可能的值(1到10),而第一個(gè)可能的值是1。而如果想要選擇一個(gè)介于2到10之間的值,就應(yīng)該將上面的代碼改成下面這樣的:


var num=Math.floor(Math.random()*9+2);

分析下:從2數(shù)到10總共有9個(gè)數(shù),因此可能值的總數(shù)就是9,而第一個(gè)可能的值就是2。

當(dāng)然,多數(shù)情況下,都可以用一個(gè)函數(shù)來計(jì)算可能值的總數(shù)和第一個(gè)可能的值,例如:

function selectFrom(lowerValue,upperValue){

var choices=upperValue-lowerValue+1;

return Math.floor(Math.random()*choices+lowerValue);

}

var num=selectFrom(2,10);
alert(num);  //介于2和10之間的一個(gè)數(shù)值(包括2和10)

分析下:函數(shù)selectFrom()接受兩個(gè)參數(shù):一個(gè)是最小值,一個(gè)是最大值。而用最大值減去最小值再加1就得到可能值的總數(shù),然后再套用的剛才的公式中去。

(4)Math.abs(num)是返回num的絕對值

Math.abs(-10);  //10

數(shù)值類型轉(zhuǎn)換的方法

(一)將數(shù)值格式化為字符串:toFixed()

toFixed()方法會(huì)按照制定的小數(shù)位返回?cái)?shù)值的字符串表示。例如:

var num=10;
alert(num.toFixed(2));  //"10.00"

分析下:傳入的2是顯示幾位小數(shù)的意思,如果數(shù)值本身包含的小數(shù)位數(shù)比指定的小數(shù)位數(shù)多,那么數(shù)值就會(huì)被舍入處理。如:

var num=10.005;
alert(num.toFixed(2));  //"10.01"

正是因?yàn)槟軌蜃詣?dòng)舍入,所以toFixed()方法很適合處理貨幣值。不過當(dāng)toFixed()傳入0,IE8會(huì)出錯(cuò),IE9修復(fù)了錯(cuò)誤。

(二)將字符串轉(zhuǎn)換為數(shù)字
(1)parseInt():返回整型的數(shù)字

語法:

parseInt(string,radix)

其中radix表示string參數(shù)中數(shù)字的進(jìn)制,默認(rèn)是十進(jìn)制,取值范圍為2~32。但是如果字符串的第一個(gè)字符不能被轉(zhuǎn)換為數(shù)字,那么parseInt()函數(shù)會(huì)返回NaN。實(shí)例如下:

document.write(parseInt("25")+"<br/>");
//返回25

document.write(parseInt("11",2)+"<br/>");
//參數(shù)是2進(jìn)制,返回十進(jìn)制結(jié)果,返回3

document.write(parseInt("8M")+"<br/>");
//參數(shù)首字符是數(shù)字,但后面的是字符,返回8

(2)parseFloat():返回浮點(diǎn)型的數(shù)字

語法如下:

parseFloat(string);

只能傳入一個(gè)參數(shù),和parseInt()不同,說明,如果字符串的第一個(gè)字符不能被轉(zhuǎn)換為浮點(diǎn)數(shù),那么parseFloat()函數(shù)會(huì)返回NaN??聪吕踝樱?/p>

document.write(parseFloat("25.33")+"<br/>");   //25.33

document.write(parseFloat("25.33M")+"<br/>");  //25.33

(3)Number()函數(shù)把對象的值轉(zhuǎn)換為數(shù)字。這個(gè)是重點(diǎn)有難度,需要花點(diǎn)功夫去掌握。

Number(object)

說明:參數(shù)必須是JS對象。如果對象的值無法轉(zhuǎn)換為數(shù)字,那么 Number() 函數(shù)返回 NaN。實(shí)例如下:

Number('100.1')    // 100.1
Number('12.4b5')   // NaN
Number('www')      // NaN

當(dāng)然傳入數(shù)值、字符串、布爾值也沒關(guān)系,數(shù)值、字符串、布爾值這些基本類型值被讀取的時(shí)候EcmaScript會(huì)短暫的創(chuàng)建一個(gè)相應(yīng)的對象,并進(jìn)行操作。

關(guān)于Number()函數(shù)在特殊值的轉(zhuǎn)換結(jié)果暫略。。。等Uolcano整理完再補(bǔ)充。

Date的方法

(1)獲取當(dāng)前日期就用:

var date=new Date();
console.log(date);

返回:Sat Jan 23 2016 16:15:17 GMT+0800 (中國標(biāo)準(zhǔn)時(shí)間)

(2)打印指定的日期,可以在()后面?zhèn)魅藭r(shí)間參數(shù)

new Date(year,month[,day[,hour[,minutes[,seconds[,milliseconds]]]]])

比如,傳人2016.02.03.14:52,可以這樣寫

var date=new Date(2016,1,3,14,52);
console.log(date);

返回:Wed Feb 03 2016 14:52:00 GMT+0800 (中國標(biāo)準(zhǔn)時(shí)間)

注意:月份是從0開始計(jì)算的,比如你要輸1月份,就要輸0,2月份就要輸1。另外,參數(shù)默認(rèn)的必須填年和月,其他的諸如日小時(shí)分鐘可以選擇不填。

(3)getXXX()

var date=new Date(2015,7,20,14,57,18)

date.getFullYear();  //2015
date.getMonth();  //7
date.getDate();  //20
date.getHours();  //14
date.getMinutes(); //57
date.getSeconds();  //18

(4)日期格式轉(zhuǎn)換


如何把JS的默認(rèn)時(shí)間格式換成我們想要的右邊那種格式呢。

function padding(number){
return number<10?"0"+number:""+number;
}

function format(date){
return date.getFullYear()+"-"
+padding(date.getMonth()+1)+"-"
+padding(date.getDate())+" "
+padding(date.getHours())+":"
+padding(date.getMinutes())+":"
+padding(date.getSeconds());

}

var date=new Date(2015,7,20,14,57,18);

format(date);

返回:"2015-08-20 14:57:18"

(5)setXXX();


var date=new Date(2015,7,20,14,57,18);

date.setFullYear(2046);  //2046-08-20 14:57:18
date.setMonth(2);  //2046-03-20 14:57:18
date.setDate(15);  //2046-03-15 14:57:18
date.setHours(8);  //2046-03-15 08:57:18
date.setMinutes(16); //2046-03-15 08:16:18
date.setSeconds(56);  //2046-03-15 08:16:59

接下來我們看,如果我們吧setDate設(shè)置為35天,會(huì)如何呢?

var date=new Date(2015,7,20,14,57,18);

date.setDate(35);
/*需要經(jīng)過上面的格式轉(zhuǎn)換*/

//2015-09-04 14:57:18

由此我們可以看出,會(huì)setXXX()會(huì)進(jìn)行動(dòng)態(tài)計(jì)算的,因此這個(gè)常??梢曰钣脕碛?jì)算每月到底有幾天。

(6)求天數(shù)栗子


首先我們來看看原理

就是利用了瀏覽器可以動(dòng)態(tài)計(jì)算傳人的時(shí)間參數(shù),比如日期輸入第0天,就會(huì)返回上個(gè)月的最后一天,上個(gè)月的最后一天的數(shù)字就是上個(gè)月的天數(shù)了,用這個(gè)原理來求天數(shù)。下面我們來看實(shí)際的代碼:

function getDays(year,month){
var date =new Date(year,month,0);
return date.getDate();
}

alert("2001年2月有"+getDays(2001,2)+"天");
alert("2001年3月有"+getDays(2001,3)+"天");

(7)Date轉(zhuǎn)number和number轉(zhuǎn)Date


比如前端處理完Date后,要存到服務(wù)器端的時(shí)候就需要將Date轉(zhuǎn)成number,怎么轉(zhuǎn)呢,就用getTime()來獲得number,這個(gè)number的意思是距1970年1.1的毫秒數(shù)。


如果要把服務(wù)器端的number轉(zhuǎn)Date就直接把nubmer傳到newDate()括號里作為參數(shù),就可以了,如果你有個(gè)number就可以用setTime()來設(shè)置。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 第5章 引用類型(返回首頁) 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學(xué)一百閱讀 3,674評論 0 4
  • 有人說過,很多彎路到最后都成了直路,所有的坑到最后也都成了坦途;所謂的直路和坦途并不是擺在眼前的,都是不斷的的...
    老衲法號一眉道人閱讀 1,457評論 0 4
  • 本章內(nèi)容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的 JavaScript 類型 使用基本類型和基本包裝類型 引用類型的...
    悶油瓶小張閱讀 775評論 0 0
  • 一、茶(平水韻·下平七陽) 2016.4.29 空山谷雨忙,日暮鎖窗涼。 詩酒情還短,禪茶話更長。 綠蘿甌上擺,蘭...
    不惑磊哥閱讀 830評論 0 1
  • 很久沒有細(xì)致品味生活了。 偶遇滿天星,恰好家里的花瓶也空置了許久,便買了這樣滿滿一大束。嫣紅的,青綠的,鵝黃和雪白...
    且柔閱讀 352評論 0 0

友情鏈接更多精彩內(nèi)容