js-JavaScript高级程序设计学习笔记3

时间:2022-07-10 18:49:04

第五章 引用类型

1、使用new操作符和Date构造函数创建日期对象。

2、创建特定日期有两个方法——Date.parse()和Date.UTC()。后者小时数为0时显示时间是8点,应该是因为本地是东八区。

3、使用Date.now()方法可以分析代码的运行时间。代码开头使用一次,结束使用一次,然后两次相减得到运行的毫秒数。

4、在不支持Date.now()的浏览器中,使用var start=+new Date();可达到同样的目的。

5、可以直接用比较操作符比较日期的大小。

6、使用构造函数来定义正则表达式,需要对元字符双重转义。

7、函数是对象,函数名是指针。

8、解析器会先读取函数声明,使其在任何代码之前可用。

9、函数内部有两个特殊的对象,arguments和this。

10、arguments的用途是保存函数参数,这个对象有个名叫callee的属性,该属性是个指针,指向拥有这个arguments对象的函数。可用于在递归时接触函数体内代码与函数名的耦合状态。

11、this引用的是函数据以执行的环境对象。

12、ES5的另一个函数对象属性——caller,保存着调用当前函数的函数的引用。

13、每个函数都包含两个属性:length和prototype。length属性表示函数希望接收的命名参数的个数。

14、每个函数都包含两个非继承而来的方法:apply()和call()。这两个方法的用途都是在特定的作用域中调用函数,实际上等于设置函数体内this对象的值。

15、apply()方法接收两个参数:一个是在其中运行函数的作用域,另一个是参数数组(可以是Array实例,也可以是arguments对象)。call()与apply()作用相同,但是传递给函数的参数必须逐个列举出来。

16、传递参数并非apply()和call()的真正用武之地,他们强大的地方在于能够扩充函数赖以运行的作用域。P117。用他们扩充作用域的好处是对象不需要与方法有任何耦合关系。

17、ES5还定义了一个方法:bind()。这个方法创建一个函数的实例,其this值会被绑定到传给bind()函数的值。如var objectSayColor=sayColor.bind(o);在这里,sayColor()调用bind()并传入对象o,创建了objectSayColor()函数,它的this值等于o。

18、Number类型中将数值格式化为字符串的方法——toFixed()、toExpoential()、toPrecision()。前两个接收数值表示小数的位数,第三个接收数值表示总位数。

19、字符串方法——slice()、substr()、substring()的异同以及对负的参数的处理方法见P124。

20、trim()方法创建一个字符串的副本,删除前置和后缀的所有空格。

21、字符串的match()方法接收一个正则表达式或者RegExp对象,与调用RegExp的exec()方法相同。

22、eval()方法能够解析代码字符串,谨慎使用。

23、找到数组中的最大或最小值,可以使用apply()方法。

 var values=[1,2,3,4,5,6,7,8];
var max=Math.max.apply(Math,values);

24、随机返回一个范围内的整数

 function selectFrom(lowerValue,upperValue){
var choices=upperValue-lowerValue+1;
return Math.floor(Math.random()*choices+lowerValue);
} var num=selectFrom(2,10);
//介于2到10之间的一个随机数值

25、三种基本的包装类型——Boolean、Number、String。特征:1、每个包装类型都映射到同名的基本类型。2、在读取模式下访问基本类型值时,就会创建对应的基本包装类型的一个对象,方便了数据的操作。3、操作基本类型值得语句一经执行完毕,就会立即销毁新创建的包装对象。