Date 对象用于处理日期和时间。
创建 Date 对象的语法:
var myDate=new Date()
Date 对象会自动把当前日期和时间保存为其初始值。
创建
1.获取当前客户端系统时间
var date = new Date();
console.log(date);
2.封装自定义时间 给定一个时间
var d= new Date("2019/05/20 13:14:00:00");
console.log(d);
//年 月 日 时 分 秒
var ye= new Date(2019,5-1,21,13,14,00);//2019/5/21 12:30:15 Month:0~11总比现实中小1,需要修正
console.log(ye);
3.复制一个日期对象
var date1= new Date(ye);
console.log(date1);
4.用毫秒数创建日期对象
Date 对象原理: Date 对象中保存了一个巨大的毫秒数
console.log(date.getTime())
console.log(new Date(date.getTime()));//通过毫秒数来创建日期对象
console.log(date.getFullYear());
date.setFullYear(2020);
console.log(date.getFullYear());
//date.setDay(5); 报错,Day没有set方法
console.log(date.getDay());
// Month:0~11总比现实中小1,需要修正
console.log(date.getMonth()+1)
// Date:1~31 Day:0~6 Hours:0~23 Minutes/Seconds:0~59
Error对象:对象在错误发生时提供了错误的提示信息。
try 语句块包含了未定义的/可能发生错误的代码 ,执行它会产生错误,catch 语句块会输出该错误的信息:
try {
//可能发生错误的代码
} catch(e) {//仅能在发生错误时执行
// 错误代码处理:1、提示用户错误信息;2、记录系统日志
console.log(e);
}finally{
//无论是否发生错误,都要执行的diamante
//比如:释放资源
}
Error对象:在错误发生时,自动创建,保存错误信息对象
常见6中错误类型:
主动抛出错误 抛出错误通常是为了提醒使用者错误的使用了程序
throw new Error(“错误信息”)
var num = prompt("请输数字:");
var d =prompt("请输入小数位数");
try{
console.log(round(num,d));
}catch(e){
alert(String(e));
}
function round(num,d){
if(isNaN(num) || isNaN(d)){
throw new Error("num 和 d必须是数字!")
}else{
num=num*Math.pow(10,d);
num=Math.round(num);
return num/Math.pow(10,d);
}
}
js中的重载效果
arguments对象是所有(非箭头)函数中都可用的局部变量。你可以使用arguments对象在函数中引用函数的参数。此对象包含传递给函数的每个参数,第一个参数在索引0处。例如,如果一个函数传递了三个参数,你可以以如下方式引用他们:
function (a,b,c){
arguments[0]=a
arguments[1]==b
arguments[2]c
arguments.length3
}
what?
相同得函数名,不同的参数列表的多个函数,在调用时,可以根据传入的参数不同,自动选择对应的函数调用!!
why?
减轻调用者的负担 一个函数名,可以执行多种操作
when
一项任务,根据不同的参数,执行不同的操作流程(比如付款方式有许多种 pay 钱 卡 手机(二维码))
在javascript中如何用?
答:无法实现重载效果
替代 : 所有的函数对象中,都自动创建了一个arguments对象
arguments对象:专门保存传入函数的所有参数值的类数组对象 —当成数组来用
类数组对象:(object like array)
与 数组相同:下标 length for遍历
不同:类数组对象是Object 不是array 无法使用Array的API
例子:
function pay(){
//根据参数个数来判断使用的支付方式
//如果参数个数为0 扫码支付
if(arguments.length==0){
console.log("微信结账");
}
//如果参数个数为1 现金支付
else if(arguments.length==1){
console.log("现金支付,收款:"+arguments[0])
}
//如果参数个数为2 刷卡支付
else{
console.log('刷卡结账,卡号:'+arguments[0])
}
}
pay();//微信结账
pay(100);//现金结账
pay("666666666","123456");//刷卡结账
函数对象(Function)
函数名仅是一个普通的变量, 函数定义其实是一个对象 函数名中保存的仅仅是对象的地址----引用类型
什么时候用函数:一段代码要被反复使用的时候 就要定义一个函数,在函数体内容反复执行
参数列表:只要函数中的步骤必须使用某些数据,并且这些数据不是固定不变的,就要定义参数
返回值:如果函数的调用者需要函数执行的结果,函数就必须有返回值
创建好了以后不调用,永远不会执行
**声明提前:**将所有的var声明的变量和function声明的函数 提到前当前作用域的顶部,集中创建
赋值留在原地!!!
注释:参考js预编译,函数提升,声明变量提升
创建:
第一种方式:直接创建
function funName(参数列表){
代码块
return 返回值 return结束函数
}
第二种方式:函数直接量
var 函数名 =function(函数列表){函数体;return 返回值;};
不会被声明提前
when:只要不希望被声明提前时
例子
var fun=function(n){
var a=100
return n+1;
}
console.log(fun(6));
第三种方式:使用new
var fun=new Function(参数列表,"函数体;return 返回值")
例子
var compare = new Function("a","b","return a-b");
console.log(compare.length) ; //函数的参数个数 函数的属性