函数
- 函数名是指向函数对象的指针,因此不存在函数重载
- 函数声明
function sum(num1,num2){ return num1+num2; }复制代码
- 函数表达式
var sum=function(num1,num2){ return num1+num2; }复制代码
- 解析器会在任何代码之前解析函数声明,函数表达式只有在解析器执行到代码所在行时才会真正被解释执行
- 函数名本身就是变量,因此可以作为另一个函数的参数或者返回值。也可以从一个函数中返回另一个函数。
function callSomeFunction(someFunction,someArgument){ //作为另一个函数的参数 return someFunction(someArgument); //作为另一个函数的返回值 }复制代码
function createComparisonFunction(propertyName){ return function(){}; //从一个函数中返回另一个函数 }复制代码
- 函数内部属性(P115)
- arguments,类数组对象,保存函数参数。内有callee的属性,指向拥有这个arguments对象的函数
- this:函数执行的环境
- caller:调用当前函数的函数的引用
function outer(){ //调用当前函数的函数 inner(); } function inner(){ //当前函数 alter(inner.caller); }复制代码
-
函数的属性和方法
- length:函数希望接收的参数数量
- prototype:保存引用类型所有实例方法。不可枚举
- apply和call,在特定的作用域中调用函数
- this参数,设置函数体内的this值,表明函数的执行环境
- 函数的参数,apply支持参数数组而call只能逐个列举参数
- 调用后立即执行
- bind,创建一个函数的实例。
- this参数,设置函数体内的this值,表明函数的执行环境
- 函数的参数也是逐个列举
函数 this参数 函数的参数 是否立即执行 apply 函数的执行环境 支持数组参数 是 call 函数的执行环境 列举参数 是 bind 函数的执行环境 列举参数 否,创建函数实例
Date
- 构造方法:
var now = new Date()
- 默认情况下自动获得当前的日期和时间
- 接受若干种日期格式(Date.parse())
- “月/日/年,如6/13/1994”
- “英文月 日,年,如 January 12,2014”
- “英文星期 英文月 日 年 时:分:秒 时区,如 Tue May 25 2004 00:00:00 GMT-0700”
- “YYYY:MM:DDTHH:mm:ss.sssZ”
- Date.UTC(),年,基于0的月份,月中的哪一天(以1为起始),基于0的小时数,基于0的分钟,秒,毫秒
RegExp类型
- 创建正则表达式
var expression=/pattern/flags
var pattern=new RegExp("[bc]at","i")
。需要注意转义的问题- 使用正则表达式字面量时,必须每次都创建新的实例,和使用构造函数的行为一致。
- flags
- g:全局模式,应用于所有字符串,而非在发现第一个匹配的字符串时停止
- i:不区分大小写
- m:多行模式,在到达一行文本的末尾后还会继续查找下一行字符串中匹配的项
- 实例属性
- global:是否设置了g标志
- ignoreCase:是否设置了i标志
- lastIndex:
- multiline:是否设置了m标志 -source:正则表达式的字符串表示,按照字面量的形式返回
- 实例方法
- exec(),专门为捕获组设计
- 输入:待匹配的字符串
- 输出:第一个匹配项信息的数组
- index:匹配信息在字符串中的位置
- input:即输入
- 数组:第一项表示匹配正则表达式的字符串。其余表示捕获组。
- 在设置全局模式时,每次调用exec()会在输入的字符串中寻找匹配项。否则exec()将始终返回第一个匹配项。
- test(),判断目标字符串是否与某个模式匹配。
- toString和toLocaleString,返回正则表达式的字面量
- valueOf,返回正则表达式本身
- exec(),专门为捕获组设计
- 构造函数的属性
- input:最近一次要匹配的字符串
- lastMatch:最近一次的匹配项
- lastParen:最近一次匹配的捕获组
- leftContext:input字符串中,匹配项之前的文本
- rightContext:input字符串中,匹配项之后的文本
- multiline:是否使用了多行模式
基本包装类型
- 读取模式
- 创建基本包装类型的一个实例
- 在实例上调用指定的方法
- 销毁这个实例
- Boolean:永远不要使用
- Number
- toFixed(),按照指定的小数位数返回数值的字符串表示
- toExponential(),返回指定小数位数指数表示的字符串
- toPrecision(),按照指定的小数位数,返回数值最合适的格式的字符串
- 不建议实例化Number类型
- String
- charAt()和charCodeAt()
- concat()
- slice(),substr(),substring()
- indexOf()和lastIndexOf()
- trim()
- toLowerCase()和toUpperCase()
- localeCompare()
- fromCharCode()
单体内置对象
- Global
- encodeURI和decodeURI。对整个URI进行编码和解码。不会对本身属于URI的特殊字符进行编码。
- encodeURIComponent()和decodeURIComponent()。对URI中的某一段进行编码和解码。会对任何非标准的特殊字符进行编码。
- eval。只接受一个参数,即要执行的JS代码字符串。被执行的代码具有与该执行环境相同的作用域链。严格模型下, 外部访问不到evel()中创建的任何变量或函数。
- 大部分浏览器将全局对象Global作为window对象的一部分实现
- Math