JavaScript学习笔记七:引用类型(2)

1. 函数是对象,函数名是指针(使用不带圆括号的函数名是访问函数指针,而非调用函数)。

2. 解析器在向环境中加载数据时,会率先读取函数声明,并使其在执行任何代码之前可用。

3. 函数也可以作为值来使用,也就是说,不仅可以像传递参数一样把一个函数传递给另一个函数,而且可以将一个函数作为另一个函数的结果返回。

4. this可能会在代码执行过程中引用不同的对象。

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

6. 每个函数都包含两个非继承而来的方法:apply()和call(),它们能够用来扩充函数赖以生存的作用域,使对象不需要与方法有任何耦合关系。

7. bind()方法会创建一个函数的实例,其this值会被绑定到传给bind()函数的值。

8. ECMAScript提供了3个特殊的引用类型: Boolean、Number、String。每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象,从而让我们能够调用一些方法来操作这些数据。

    基本类型值不是对象,因而从逻辑上讲它们不应该有方法。

    引用类型和基本包装类型的主要区别就是对象的生存期。我们不能在运行时为基本类型值添加属性和方法。

    对基本包装类型的实例调用typeof会返回object。

9. 布尔表达式中的所有对象都会被转换为true。

    new Boolean(false) == true (建议永远不要使用Boolean)

10.Number类型的方法:

    toFixed():按照指定小数位返回数值的字符串表示。(不同浏览器规则有区别)

    toExponential():指数表示法表示数值。

    toPrecision():根据要处理的数值决定调用toFixed()或 toExponential()。

11.String类型的每个实例都有一个length属性。

     即使字符串中包含双字节字符,每个字符也仍然算一个字符长度。

12.字符方法:charAt()和charCodeAt()用于访问字符串中特定字符。

13.字符串操作方法:concat()可以通过它拼接任意多个字符串。但实践中使用更多的还是"+"操作符。

14.基于子字符串创建新字符串:slice()、substr()、substring(),不会修改字符串本身的值,只会返回一个基本类型的字符串值,对原始字符串没有任何影响。

15.字符串位置方法:indexOf()和lastIndexOf()。从一个字符串中搜索给定的子字符串,然后返子字符串的位置。

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

17.字符串的模式匹配方法:match()、search()、replace()、split()。

18.ECMAScript的内置对象在程序执行之前就已经存在了。

    Global:事实上,没有全局变量和全局函数,所有在全局作用域中定义的属性和函数,都是Global对象的属性。

    Global对象的eval()方法十分强大,就像是一个完整的ECMAScript解析器。

    Global对象的属性:ECMAScript明确禁止给undefined、NaN、和Infinity赋值,这样做即使在非严格模式下也会导致错误。

    ECMAScript没有明确指出如何访问Global对象,但Web浏览器都是将这个全局对象作为window对象的一部分加以实现。

19.Math对象,Math对象提供的计算功能比我们在JavaScript直接编写的计算功能相比,执行要快得多。

    主要方法:min()、max()、ceil()、floor()、round()、random()。

posted on 2016-07-23 09:10  RockLee2016  阅读(119)  评论(0)    收藏  举报