目录
-
函数对象的方法:call()和apply()
-
这两个方法是函数对象方法,需要函数对象来调用
-
调用这两个方法的同时,还会执行函数
-
调用这两个方法时(一脸懵逼)
-
可以把一个对象作为方法的第一个参数传入,此时这个对象就是执行函数时的this
-
函数以函数形式调用时,this是window
-
函数以方法形式调用时,this是方法对象
-
函数以构造函数调用时,this是新创建的对象
-
-
call()方法可以将实参在对象之后依次传递
-
apply()方法需要将实参封装到一个数组中统一传递
-
-
-
arguments
-
调用函数时,浏览器每次都会传递两个隐含的参数:
-
this:函数的上下文对象
-
arguments:封装实参的对象
-
-
arguments:
-
arguments是一个类数组对象,它可以通过索引来操作数据,也可以通过length获取长度
-
在调用函数时,我们所传递的实参都会在arguments中保存
-
即使不定义也可以通过arguments来使用实参
-
arguments[0]表示第一个实参
-
-
arguments里边有一个属性叫做callee
-
这个属性对应一个函数对象,就是当前正在指向的函数的对象
-
-
-
-
Date对象(日期)
-
Date对象表示日期
-
// 创建默认获取当前时间的对象
var d1 = new Date();
// 创建指定时间的对象,月/日/年 时:分:秒
var d2 = new Date("12/03/2016 12:13:14");
// getDate()方法获取当前日期的日
d1.getDate();
// getDay()方法获取当前日期是周几
// 返回0-6,0表示周日,1-6表示周一到周六
d1.getDay();
// getMonth()方法获取当前日期的月份
//返回0-11,0表示1月,1表示2月,以此类推
d1.getMonth();
// getFullYear()方法获取当前日期的年份
d1.getFullYear();
// getTime()方法获取当前日期对象的时间戳
// 时间戳是从格林威治时间1970年1月1日00:00:00到当前时间的毫秒数
// 计算机底层保存时间时使用的是时间戳
d1.getTime();
// Date.now()获取当前的时间戳,可用来测试代码的执行效率
time = Date.now();
-
Math对象(数学)
-
Math和其他对象不同,它不是一个构造函数
-
Math是一个工具类,不用创建对象,它里面封装了数学运算相关的属性和方法
-
// 圆周率
Math.PI
//abs()方法:计算绝对值
Math.abs(-1)
// ceil()方法:向上取整,有小数部分则进一
Math.ceil()
// floor()方法:向下取整,去除小数部分
Math.floor(1.1)
// round()方法:四舍五入取整
Math.round(4.5)
// random()方法:生成0-1之间的随机数
// 生成x-y之间的随机数:Math.round(Math.random()*(y-x)+x)
Math.random() // 生成0-1的随机数
Math.round( Math.random() ) // 随机生成01
Math.random() * 10 // 生成0-10的随机数
Math.random() * 6 + 4 // 生成4-10的随机数
// max()方法:获取最大值
Math.max(10,11,9)
// min()方法:获取最小值
Math.min(10,11,9)
// pow(x,y)方法:返回x的y次幂
Math.pow(10,3)
// sqrt()方法:用来对一个数进行开方
Math.sqrt(4)
-
包装类
-
基本数据类型:String、NUmber、Boolean、Null、Undefined
-
JS中提供了三个包装类,通过这三个包装类可以将基本数据类型的数据转换为对象
-
String()
-
可以将基本数据类型字符串转换为String对象
-
-
Number()
-
可以将基本数据类型的数字转换为Number对象
-
-
Boolean()
-
可以将数据类型的布尔值转换为Boolean对象
-
-
-
注意
-
实际开发中不会使用基本数据类型的对象。如果使用基本数据类型的对象,在做一些比较时可能会带来一些不可预期的结果
-
-
方法和属性能添加给对象,而不能添加给基本数据类型。当我们对一些基本数据类型的值去调用属性和方法时,浏览器会临时使用包装类将其转换为对象,然后在调用对象的属性和方法。调用完之后,再将其转换为基本数据类型
-