JavaScript学习笔记整理(七)

来源:互联网 发布:淘宝店铺改名字 编辑:程序博客网 时间:2024/06/14 09:22


Math类型  :封装了数学计算中的API
Math不能实例化,不能new
Math.round(num)  四舍五入取整数
Math.ceil(num)   向上取整  例如:15.4    16
Math.floor(num)  向下取整  例如:15.4    15
Math.abs(num)    取绝对值
Math.max/min()  (值1,值2,值3输出最大或者最小)
var n=22.16;
Math.round(n)   22
Math.ceil(n)    23
Math.ceil(n)    22
var s1=75;
var s2=90;
var s3=80;
document.write(Math.max(s1,s2,s3)); //输出90
var arr=[2,3,4,6,7,8,9,2,3,4];
var max=Math.max.apply(Math,arr); //数组中是最快的速度
document.write("<br>"+arr+"最大"+max);


随机数:Math.random():0<=r<1
任意区域之间的随机数
Math.floor(Math.random()*(max-min+1)+min)


随机生成一个四位或者六位的随机验证码
将所有的字母,数字装入一个数组备用
var codes=[];
//数字48-57 
for(var i=48;i<57;codes.push(i),i++);
//大写字母65-90
for(var i=65;i<=90;codes.push(i),i++);
//小写字母97-122
for(var i=97;i<=122;codes.push(i),i++);
var arr=[];
for(var i=0;i<4;i++){
//从0-61之间取随机数
var index=Math.floor(Math.random()*(61-0+1)+0);
var char=String.fromCharCode(codes[index]);  //每生成一个字符转换成一个code字符,然后压入arr中
arr.push(char);
}
var code=arr.join(""); //字符串拼接
document.write("你生成的四位随机数为:"+code);
var input=prompt("请输入四位验证码 : "+code);
if(input==code){
alert("验证码正确");
}else{
alert("验证码不正确");
}
document.write("你生成的四位随机数为:"+code);


   Date对象  封装一个时间点事件,并且提供对时间或者日期的API
var date=new Date()  办了两件事:1,创建Date类型对象,2,自动获得浏览器的当前时间点
Date对象中保存的是1970年1月1日0 0 0 0 0到现在的毫秒数
var data=new Date(0);
console.log("<br>"+data);
var data1=new Date();
console.log("<br>"+data1);
var data2=new Date("<br>"+"1994-12-04");
console.log("<br>"+data2);
var month=now.getMonth();
console.log(month);
天数加3天
先取出分量,做加减,再set回去
获取时间get
设置时间set 特点:直接修改原日期对象,自动调整进制
var now=new Date("1982-06-09");
var next=new Date(now.getTime());
var d=next.getDate();
d-=15;
next.setDate(d);
console.log(now);
console.log(next);


小明2012年6月29日入职
卖身契3年,求合同的到期日期
到期前一个月要续签,求续签的日期
提前一周提醒,求提醒的日期
如果续签日是周末,则提前到周五
.toLocaleDateString()是将时间简化版
可以将Fri May 22 2015 00:00:00 GMT+0800 (中国标准时间)
转化为 2015/5/22
var hire=new Date("2012-6-30");
hire.setFullYear(hire.getFullYear()+3);
document.write("合同的到期日是:"+hire.toLocaleDateString());
hire.setMonth(hire.getMonth()-1);
document.write("<BR>合同的到期提前一个月是:"+hire.toLocaleDateString());
if(hire.getDay()==6){//如果是周六
//减少一天
hire.setDate(hire.getDate()-1);
}else if(hire.getDate()==0){
hire.setDate(hire.getDate()-2); //减少两天
}
document.write("<br>续签时间:"+hire.toLocaleDateString());
hire.setDate(hire.getDate()-7); 
document.write("<br>提前一周提醒时间:"+hire);


输出当前时间格式2017年11月26日 星期日上午11:17:02,进行自动判断
function format(data){
var week=['日','一','二','三','四','五','六'];
var y=data.getFullYear()+"年";
var m=data.getMonth()+1+"月";
var d=data.getDate()+"日";
var w=" 星期"+week[date.getDay()];
var h=date.getHours();
var am=date.getHours()>=12?"下午":"上午";
h=h>12?h-12:h;  //如果时间超过12点,则13-12是一点,否则输出h
h=h<10?"0"+h:""+h;  
//如果是一位的,则添加一个0变成两位
var mi=data.getMinutes();
mi=mi<10?"0"+mi:""+mi;  //分钟
var s=data.getSeconds();
s=s<10?"0"+s:""+s;  //分钟
var str=y+m+d+w+am+h+":"+mi+":"+s;
return str;
}
var date=new Date()
document.write(format(date));
//输出2017年11月26日 星期日上午11:17:02


Number对象
Number对象表示数值数据和数字常数,主要用于对数字进行指定格式的输出
var num=new Number(5); 5
var num=new Number("1.5"); 1.5
var num=new Number(); 0
var num=new Number("hello"); nan
var num=new Number('123abc');  nan
将数据转换为Number数据类型
var num=Number(5); 5
var num=Number("1.5"); 1.5


Boolean对象表示布尔值对象true或者false


错误处理:导致程序运行停止的运行时异常状态
什么是错误处理,在出现异常状态时,保证程序不停止的机制
ECMA定义了六种错误类型
EvalError
RangRrror  参数超出范围
ReferenceError 引用错误,找不到对象
SyntaxError 语法错误,自己修改源代码
TypeError 错误的使用了类型和类型的方法
URLError
如何处理错误
try{
可能出错的代码
}catch(err){
只要抛出错误,都会创建一个Error对象
错误处理的代码
1.获得错误信息:err.name类型
感觉错误类型,执行不同的处理
}finally{
无论是否出错,都必须执行的代码
}


Function
在JavaScript中,函数也是以对象的形式存在的,每个函数都是一个function对象实例
1.以声明方式定义方法,
function 方法名(参数列表){
方法体;return 返回值
}
2.以创建对象的方法定义方法
var 方法名=new Function("C参数1",-----方法一;return 返回值)
只有声明方式的定义方法才被提前解析
比较大写,按照升序来比较
第一种方式定义function
function compare(a,b){
return a-b;
}
第二种方式定义function
var compare=new Function("a","b","return a-b;"); //Function必须大写
var arr=[1,22,33,45,232,4343,,335];
arr.sort(compare);
document.write(arr);
第三种 匿名函数  定义是没有指定名称的函数
匿名函数的两个用途
1,回调函数 函数何时执行,程序员不需要控制,由所在环境自动调用控制
比如:比较器就是回调函数
var arr=[2,34,5,5,6,7,88,87,3];
arr.sort(function(a,b){return a-b;});
document.write(arr);   
一样可以输出的
2,自调函数   匿名函数自己调用自己
当函数不需要重复使用的时候,使用自调函数,
var compare=function(a,b){return a-b;}
笔试题 js中方法定义的几种方式
2,3必须写在使用之前
1,function compare(a,b){return a-b;}
2,var compare=function(a,b){return a-b;}
3,var compare=new Function("a","b","return a-b;");
重载:方法,根据传入的参数列表不同,执行不同的任务
例如:function jz(money){
现金结账,验钞,找零


}
function jz(cardId,pwd){
刷卡结账:验证卡号,验证密码
}
用一个方法名可以自动判断并提供多个功能,但是js中的function不能重名
js语法根本不支持重载,但是可以去模拟。自动创建,直接使用
arguments对象:方法对象中保存所有参数的类数组对象类数组对象:长得像数组的对象
有length属性,但是有下标,类似数组,可以当数组用,但是不是数组,模拟的
arguments案例,是在及其特殊的情况下使用的,一般不适用
function calc(){//calc()里面可以不用写东西
//arguments是默认隐藏的
if(arguments.length==1){
var a=parseInt(arguments[0]);
var b=parseInt(arguments[1]);
alert(a*a);
}else{
var a=parseInt(arguments[0]);
var b=parseInt(arguments[1]);
alert(a+b);
}
}
html 部分
<button onclick="calc(13)">算平方</button>
<button onclick="calc(13,14)">算加法</button>


使用匿名函数去掉左边空格
var ltrim=function(str){
var reg=/^\s+/;
return str.replace(reg,"");
}
使用匿名函数去掉右边的空格
var rtrim=function(str){
var reg=/\s+$/;
return str.replace(reg,"");
}