一,call()和apply()

  这两个方法都是函数对象的方法,需要通过函数对象来调用,当对函数调用call和apply都会调用函数执行,在调用这两个方法的时候,可以将第一个对象指定为第一个参数,此时这个对象会成为函数执行时候的this,改变当前执行的对象。

  call方法可以将实参在对象之后依次传递。fun.call(obj,2,3);

  apply方法需要将实参封装在数组中统一传递。fun.apply(obj,[2,3]);

 

this情况:

(1)以函数形式调用时候,this永远是window

(2)以方法形式创建时,this是调用方法的对象

(3)以构造函数的形式调用时候,this是新创建的那个对象

(4)使用call和apply调用时,this是指定的那个对象

 

二,arguments

在调用函数时候,浏览器每次都会传递两个隐含的参数

(1)this

(2)arguments(类数组对象),也可以通过索引操作数据,也可以获取长度

  argumnets.length用来获取实参的长度

  即使不定义形参,也可以通过arguments定义实参

(3)arguments里有一个属性callee,就是当前正在指向的函数的对象

 

三,Date

JS中表示时间

//创建一个Date对象,如果在构造函数中创建一个Date对象,则会封装为当前代码执行的时间。

var d=new Date();

console.log(d);

//创建一个指定时间的对象

//日期格式:月/日/年 时:分:秒

var d2=new Date("12/03/2016 11:10:30");//月日年

console.log(d2);

 

相关的方法:

var date=d2..getDate();//获取当前日期是几号

var day=d2.getDay();//当前日期是周几

var month=d2.getMonth();//当前月份

var tear=d2.get FullYear();//返回年份

var time=d2.getTime();//获取时间戳,从1970年格林威治标准时间,一月一日零时零分零秒开始算ms(1s=1000ms)

计算机底层保存时间用的都是时间戳

time=Date.now();//结果是执行当前行对应的时间戳

 

四,Math

Math.PI;//圆周率

Math.abs();//绝对值

Math.ceil(1.4);//向上取整

Math.floor(1.4);//向下取整

Math.round(1.4);//四舍五入

Math.random();//生成一个[0,1)之间的随机数

Math.max(10,11,20);//取最大值

Math.min(11,90,8);//最小值

Math.pow(12,3);12的3次幂

Math.sqrt(12);12开方

 

五,包装类

String()将基本数据类型转为String

Number()将基本数据类型转为Number

Boolean()将基本数据类型转为Boolean

 

str.charAt(i);//返回任意位置字符

str.charCodeAt();//返回指定位置字符Unicode编码

formCharCode();//根据字符编码获取字符

 

concat();//连接两个或多个字符串

str.indexof("h");返回str第一次出现h的索引,没找到返回-1

str.indexof("h",2);//从下标为2处开始查找

str.lastindexof("h");//从后往前遍历寻找第一个出现的

str.lastindexof("h",2);//从下标为2处开始查找

str.slice(0,2);//不会影响源字符串,左闭索引右开索引,第二个参数省略,则会截取到后面的所有。

      如果传递一个负数,则会从后往前查

substring(1,2);//截取字符串,左闭右开,和slice类似。不同的是这个方法不能接受负值,负值相当于0

      如果前后大小反了,系统会自动调整

substr(0,2);//两个参数分别是截取位置的索引,截取个数

split(",");//将字符串根据“,”拆分成数组。如果将空串作为拆分参数,则会将每个字符都拆分为数组中的一个元素

toUpperCase();//变大写字串;