function fun(){
// console.log("这是一个函数");
console.log(this);
}
// fun();
// fun.call();
// fun.apply();
var obj={
name:"xiaoming",
age:23
};
// fun.call(obj);
// fun.apply(obj);
function fun1(a,b){
console.log("a="+a+",b="+b);
console.log(this);
}
fun1(12,34);
fun1.call(obj,12,34);
fun1.apply(obj,[12,34]);
在调用函数时,浏览器每次都会传递进来两个隐含的参数:
我们即使不定义形参,也可以通过arguments来使用实参,比较麻烦
arguments[0]
表示第一个实参arguments[1]
表示第二个实参
它里面有一个属性叫做callee
,这个属性对应一个函数对象,就是当前正在执行的函数对象function fun(){
// console.log(this);
console.log(arguments instanceof Array);
// console.log(arguments[0]);
console.log(arguments.callee);
}
fun(12,123,343,45,4);
Date对象(内建对象)
//创建一个Date对象
//如果时间使用构造函数创建一个Date对象,则会封装为当前代码执行的时间
var d=new Date();
console.log(d);
//创建一个指定的时间对象
//需要在构造函数中传递一个表示时间的字符串作为参数
var date2=new Date("2020-03-23 12:34:12");
console.log(date2);
var date=d.getDate();
console.log(date);
var month=d.getMonth();
console.log(month);//2 表三月
var year=d.getFullYear();
console.log(year);
var hours=d.getHours();
var minute=d.getMinutes();
var second=d.getSeconds();
hours= hours<=9? "0"+hours:hours;
minute= minute<=9? "0"+minute:minute;
second= second<=9? "0"+second:second;
var str=hours+":"+minute+":"+second;
var time=d.getTime();
console.log(time);
// var minutes = 1000*60
// var hours = minutes*60
// var days = hours*24
// var years = days*365
// var d = new Date()
// var t = d.getTime()
// var y = t/years
console.log(time/1000/60/60/24/365);
var date3=new Date("1970/1/1 0:0:0");
time=date3.getTime();
console.log(time/1000/60/60);
//console.log(time/1000/60/60);//注意时差的问题 我们的时间是北京时间
//可以使用时间戳来测试代码的执行性能
var start=Date.now();
for(var i=0;i<100;i++){
console.log(i);
}
var end=Date.now();
console.log("本次代码执行时间为:"+(end-start)+"毫秒");
说明:日期对象里面还有很多的方法,这里就不一一列举了请参考w3c手册
Math对象和其他对象不同,它不是一个构造函数, 它属于一个工具类不用创建对象,它里面封装了数学运算相关的属性和方法
Math.PI
表示圆周率(约等于3.14159)console.log(Math.PI);
Math.abs(x)
- 返回一个数的绝对值
Math.sin(x)
- 返回一个数的正弦
var num=Math.abs(-10);
console.log(num);
Math.ceil()
- 可以对一个数进行向上取整,小数位只要有值就自动进1
Math.floor()
- 可以对一个数进行向下取整,小数部分会被舍掉
Math.round()
- 可以对一个数进行四舍五入取整
//ceil向上取整
num=Math.ceil(1.4);
num=Math.ceil(1.0);
console.log(num);
//floor 向下取整
num=Math.floor(123.999);
console.log(num);
//round 四舍五入取整
num=Math.round(1.5);
console.log(num);
Math.random()
Math.round(Math.random()*10)
Math.round(Math.random()*X)
Math.round(Math.random()*9)+1
Math.round(Math.random()*(X-1))+1
Math.round(Math.random()*(X-Y))+Y
var num=Math.random();
// console.log(num);
for(var i=0;i<100;i++){
// num=Math.random()*10;//0-10之间的随机数
//num=Math.round(Math.random()*10);//0-10之间的随机整数
//num=Math.round(Math.random()*9)+1;//1-10之间的随机数(整数)
// 2到7之间的随机数
//num=Math.round(Math.random()*5)+2;// 2到7之间的随机数(整数)
// 5到23之间的随机数
num=Math.round(Math.random()*18)+5;
//console.log(num);
}
var max=Math.max(12,34,6,56);
var min=Math.min(12,34,6,56);
console.log(max);
console.log(min);