***不能实例化对象
实例化:用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;ilength;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("验证通过");
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()));