函数对象
calll()和apply()
这两个方法都是函数对象的方法,需要通过函数对象来调用
当函数用call()和apply()都会调用函数执行,在调用call()和apply()时可以将一个对象指定为第一个参数,此时这个·对象将会成为函数执行时的this.
call()方法可以将实参在对象之后一次传递
apply()方法需要将实参封装到一个数组中统一传递
在调用函数时,浏览器每次都会传递两个隐含的参数
1.函数的上下文对象this
this有以下几种情况:
1.以函数形式调用时,this永远都是window
2以方法的形式调用时,this就是调用方法的对象
3.以构造函数的形式调用,this是新创建的那个对象
4.使用csll()和apply()调用时,this是指定的那个元素
2.封装实参的对象arguments
arguments是一个类数组对象,它也可以通过索引来操作数据,也可以获取长度。
在调用函数时,我arguments中保存
arguments.length可以获取实参的长度
我们即使不定义形参,也可以通过arguments来使用实参,只不过比较麻烦。
arguments[0]表示第一个实参
它里边对应一个属性叫callee.这个属性对应当前正在指向的函数的对象
Date对象
在js中使用Date对象来表示一个时间
创建Date对象
1.直接使用构造函数创建则会封装为当前代码执行的时间
var d=new Date();
2.创建一个指定的时间对象
需要在构造函数中传递一个表示时间的字符串作为参数
格式: 月份/日/年 时:分:秒
var d=new Date("12/03/2016 11:22:22");
getTime
获取当前日期对象的时间戳
时间戳:指的是从格林威治标准时间的1970年一月一日,0时0分0秒开始到当前日期所花的毫秒数(1秒=1000毫秒),计算机底层在保存时间时使用的都是时间戳
var time=d.getTime();
获取当前的时间戳
time=Date.now();
作用:利用时间戳来测试代码的执行的性能
Math
数学中常用的对象和属性
Math.ceil()
可以对一个数进行向上取整,小数位只要有值就会自动进一
Math.floor()
可以对一个数进行向下取整,小数部分会被舍掉
Math.round()
可以对一个数进行四舍五入取整
Math.random()
可以用来生成一个0~1之间的随机数
生成x~y的随机数
Math.round(Math.random()*(y-x)+x);