call、apply
call和apply是函数对象的方法,需要通过函数对象来调用。
调用call和apply可以将一个对象指定为第一个参数,这个对象将会成为这个函数的this。
function fun(){
alert(this);
}
var obj = {};
fun(); //window
fun.call(obj); //obj
fun.apply(obj); //obj
call()方法可以将实参在对象之后依次传递,apply()方法需要将实参封装到数组里统一传递。
arguments
在调用函数时,浏览器每次都会传递两个隐含的参数:上下文对象this、封装实参的对象arguments。
arguments是一个类数组对象(不是数组)。也可以通过索引操作数据,也可以获取长度。
在函数调用时,我们所传递的实参都会在arguments中保存。
即使不定义形参,也能传入实参到arguments,并调用,即arguments[0]表示第一个实参,以此类推。
arguments有一个属性叫callee,对应一个函数对象就是当前执行的函数对象。
Date对象
var d = new Date();
console.log(d);
当前代码执行的时间。
创建一个指定的时间对象:
格式:月份/日/年 时:分:秒
var d2 = new Date("12/03/2016 11:10:30");
getDate()方法:
获取当前日期对象是几号。
getDay()方法:
返回获取当前日期对象是周几。会返回0-6的值,0表示周日,1表示周1。
getMonth方法:
返回获取当前日期对象的月份。0是一月,11是12月。
getFullYear方法:
返回获取当前日期对象的年份。
小时、分钟、秒、毫秒等都可以获取。
getTime()方法:
获取当前日期对象的时间戳(指从格林威治标准时间的1970年1月1日0:0:0到现在经过的毫秒数)
计算机底层在保存时间时,都是使用的时间戳。
Math
Math和其他的对象不同,它不是一个构造函数,它属于一个工具类,不用穿件对象,里面封装了属性运算的相关属性和方法。
abs()方法:
计算数的绝对值。
ceil()方法:
向上取整。
floor()方法:
向下取整。
round()方法:
四舍五入。
random()方法:
生成0-1之间的随机数(无0无1)。
若要生成0-10,则random()*10。
round也可以。
生成一个x~y之间的随机数:
Math.round(Math.random()*(y-x)+x)
max()方法:
获取多个数的最大值:
var max = Math.max(10, 45, 69, 5);
min()方法同理。
pow()方法:
Math.pow(2, 3)
2的三次方。
sqrt()方法:
开方。
包装类
基本数据类型、引用数据类型。
JS中提供了3个包装类,可以将基本数据类型转化为对象。
在实际开发中,不会使用基本数据类型的对象。
当我们对基本数据类型的值调用属性和方法时,浏览器会将其临时使用包装类将其转化为对象,再调用对象的属性和方法。
String()
Number()
Boolean()
var num = new Number(3);
var str = new String("走你");
var bool = new Boolean(true);