***不能實例化對象
實例化:用new 創建一個指定類型的具體對象 --實例instance
var arr=new Array();
Math常用API:
取整:3種:
上取整:Math.ceil(n)
下取整:Math.floor(n)
四捨五入:Math.round(n)
n.toFixed(d):按指定d位小數四捨五入
Math.round(n):不能指定小數位數,只能取整;*返回number*
乘方和開平方:
乘方:Math.pow(底數,冪) 開平方:Math.sqrt(n);
案例:
function myRound(num,d){ //num*10的d次方,再存回num中 num*=Math.pow(10,d); //調用Math.round方法取整,再存回num中 num=Math.round(num); //num/10的d次方,再存回num中 num/=Math.pow(10,d); //返回num return num; } /*測試程序*/ console.log(myRound(234.567,2)); console.log(myRound(234.567,0)); console.log(myRound(234.567,-1));
最大值和最小值:
最大值:var max=Math.max(z1,z2,z3.....);
=>固定套路:var max=Math.max.apply(Math,[z1,z2...]);
最小值:var min=Math.min.apply(Math,[z1,z2....]);
隨機數:Math.random(); -->0<=r<1
作用:min~max 取隨機整數
公式: Math.floor(Math.random()*(max-min+1)+min);
案例2:模擬實習雙色球機選程序
function doubleBall(){ //紅球:1~33之間取隨機整數,6個不重複的整數 var reds=[]; //反覆生成隨機數,直到reds.length等於6 while (reds.length<6){ // 在1~33之間生成一個隨機數,存入red中 var red=Math.floor(Math.random()*33+1); // 遍歷reds中每個元素 for(var i=0;i<reds.length;i++){ // 只要發現當前元素等於red,就break if(reds[i]==red){ // 退出循環 break; } } //(遍歷結束)如果i等於reds.length if(i==reds.length) { // 將red壓入reds中 reds.push(red); } } //(退出循環)定義升序比較器函數compare function compare(a,b){return a-b} //調用reds的sort方法,傳入copmare函數對象,排序 reds.sort(compare); //籃球:1~16之間 var blue=Math.floor(Math.random()*16+1); // //返回reds toSting後的字符串 return reds.toString()+'|'+blue; } document.write(doubleBall());
案例:隨機生成4位驗證碼
/*將所有數字和字母都放入一個數組中*/ var chars=[]; //寫入0-9 for(var i=0;i<=9;i++){ chars.push(i+""); } for (var i=65;i<=90;i++){ chars.push(String.fromCharCode(i)); } console.log(chars); for(var i=97;i<=122;i++){ chars.push(String.fromCharCode(i)); } function getCode(){//從chars中隨機抽4個位置 //i從0開始,到<4結束,同時聲明空數組codes /*var codes=[]; while (codes.length<4){ var code=Math.floor(Math.random()*(chars.length-1)+1); }*/ for(var i= 0,codes=[];i<4;i++){ // 0~chars.length-1之間生成隨機位置,存在index var index=Math.floor(Math.random()*chars.length); // 將chars中index位置的元素壓入codes中 codes.push(chars[index]); }//(循環結束)返回codes無縫拼接的字符串 return codes.join(""); } //請用戶反覆輸入驗證碼,直達輸入正確才退出循環 var input=""; var code=getCode(); while(/*input!=code*/(input=prompt("輸入驗證碼:"+code)).toLowerCase()!=code.toLowerCase()){//.toLowerCase()用於忽略大小寫 //彈出提示:驗證碼錯誤 alert("驗證碼錯誤"); //重新獲得驗證碼,存入code中 code=getCode() } document.write("<h1>驗證通過</h1>");
2*Date:封裝了19270年1月1日0時至今的毫秒數
創建:4種:
1.創建日期對象,同時獲得*當前時間* --客戶端時間
var now =new Date();
2.自定義任意時間點:
var date=new Date("xxxx/xx/xx[xx:xx:xx]");//00:00:00
案例:兩時間對象相減,得到毫秒差
3.自定義任意時間點:
var date=new Date(xxxx,xx,xx[xx,xx,xx]) ps:除了月份以外,其他都是從0開始,需要用-1進行修正
4.複製一個日期對象:
何時使用:日期API都直接修改原日期對象
如果希望留住舊日期對象,就需要先複製,再修改副本再計算
如何複製:
var old=new Date("xxx"); var target=new Date(old.getTime());其中:old.getTime()返回舊時間中的毫秒數
Date對象API:
分量: 年 月 日 星期 時 分 秒 毫秒
FullYear Month Date Day Hours Minutes Seconds Milliseconds
1.每個分量都有一對兒 get/set 方法
getxxx獲得分量的值 setxxxx設置分量的值,Day沒有set
2.命名:年月日星期,沒有s結尾;時分秒毫秒,都有s結尾
3.返回值:Date從1開始到31結束,除Date,其餘都是從0開始,到(進制-1)結束
強調:只有Month需要修正,其餘都正常
4.日期轉字符串:
var str=date.toLocalString();//日期+時間
var str=date.toLocalDateString();//日期
var str=date.toLocalTimeString();//時間
Date的就算:2種:
1.兩日期對象可相減,結果是毫秒差
2.對日期任意分量做加減:分3步:取分量,做加減,set回去 --ps:set方法自動調整進制
固定套路:date.setxxx(date.getxxx()+/-n);
強調:1.set方法直接修改原日期對象:如果要保留舊日期,先複製,再計算 ps:見案例複製
2.set方法自動調整進制
案例:
//自定義格式化日期的方法:接收一個日期對象date參數 /*返回:“2015年12月09日 星期三 上午09:13:00” * */ function format(date){ //創建數組week,初始化7個漢字星期值:星期日,星期一 var week=["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]; //初始化空數組 arr var arr=[]; //從date中獲取年份,壓入arr中 arr.push(date.getFullYear()); //從date中獲取月份,臨時保存在M中 var M=date.getMonth(); //只有M<10,纔將M改爲0+M M<10&&(M="0"+M); //將M壓入arr中 arr.push(M); /*arr.push(M<10?"0"+M;M)*/ //從date中獲取日,保存在d中 var d=date.getDate(); //只有d<10,纔將d改爲0+d //將d壓入arr中 arr.push(d<10?"0"+d:d); //將date的星期值作爲下標,獲得week中對應的星期,壓入arr中 arr.push(week[date.getDay()]); //從date中獲得小時,保存在h中 var h=date.getHours(); //如果h<12,就向arr中壓入“上午”,否則壓入“下午” arr.push(h<12?"上午":"下午"); //只有h<10,纔將h改爲0+h //將h壓入arr中 arr.push(h<10?"0"+h:h); //從date中獲得分針,保存在m中 m=date.getMinutes(); //只有m<10,纔將m改爲0+m //將m壓入arr中 arr.push(m<10?"0"+m:m); var s=date.getSeconds(); //只有s<10,纔將h改爲0+s //將s壓入arr中 arr.push(s<10?"0"+s:s); //[2015,12,09,星期三,上午,09,18,45] return arr; } console.log(format(new Date()));