5.3Date类型
1.创建日期对象
var now=new Date();
自动获取当前日期和时间
2.创建特定日期和时间
Date.parse()因地区而异
格式例子:
6/29/2007;January 12,2004;Tue May 25 2004 00:00:00 GMT-0700;2004-05-25T00:00:00;
Date.UTC()与Date.parse()类似,但参数基于0开始
5.4RegExp类型
var expression=/模式(正则表达式)/标志(一个或多个);如var pattern1=/[bc]at/I;或用构造函数var pattern1=new RegExp(“[bc]at”,”i”);
标志:
g全局模式
i不区分大小写
m多行模式
5.4.1RegExp实例属性
global:
ignoreCase
lastIndex
multiline
source保存的是字面量形式所用的字符
5.4.2RegExp实例方法
test() 接受一个字符串,返回值是 true 或 false。
exec()检索字符串中的指定值。返回值是被找到的值。没有发现匹配,则返回 null。
5.4.3RegExp构造函数属性
这些属性分别有一个长属性名和短属性名(见表格)
5.5Function类型
函数实际是一个对象,函数名是一个指针,所以一个函数可能有多个名字
使用函数表达式定义函数时,可不使用函数名,函数末尾有分号
使用Function构造函数可接收任意数量的参数,最后一个参数看做函数体,但不推荐这种方法
5.5.1没有重载
(重载:函数或者方法有相同的名称,但是参数列表不相同的情形)
声明两个同名函数,后面的函数会覆盖前面的函数
5.5.2函数声明与函数表达式
解析器先读取函数声明,函数表达式在执行到所在行再执行
5.5.3作为值的函数
函数名本身就是变量,可以将一个函数传递给另一个函数,也可将一个函数作为另一个函数的结果返回,要返回函数的指针而不执行函数,必须去掉函数名后的圆括号
5.5.4函数内部属性
特殊的两个对象:arguments(主要用于保存函数参数,有一个callee的指针属性,指向这个arguments对象的函数)和this(引用的是函数执行的环境对象)
calle(一个函数对象的属性)保存着调用当前函数的函数引用,在全局作用域中调用当前函数,它的值为null,严格模式中,不能为函数的caller属性赋值,否则会导致错误
5.5.5函数属性和方法
函数都包含两个属性:length(函数希望接受到的命名参数的个数)和prototype(保存实例方法的真正所在,不可枚举,使用for-in无法发现),
每个函数都包含两个非继承而来的方法:apply() 和call()。都是在特定的作用域中调用函数,实际上等于设置函数体内this对象的值。apply()方法接收两个参数:一个是在其中运行的作用域,另一个是参数数组。其中第二个参数可以使Array的实例,也可以是arguments对象。
call()法与apply()方法作用相同,它们的区别仅在于接受参数的方式不同。在使用call()方法时,传递给函数的参数必须逐个列举出来
5.6基本包装类型
3个特殊的引用类型:Boolean、Number和String。每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象;基本类型值不是对象,因而从逻辑上它们不应该有方法(但它们确实有方法)。
在读取模式访问字符串时,后台都会自动完成下列处理。
(1)创建String类型的一个实例;
(2)在实例上调用指定的方法;
(3)销毁这个实例。
引用类型与基本包装类型的主要区别就是对象的生存期。使用new操作符创建的引用类型的实例,在执行流离开当前作用域之前都一直保存在内存中。而自动创建的基本包装类型的对象,则只存在于一行代码的执行瞬间,然后立即被销毁。这意味着我们不能在运行时为基本类型值添加属性和方法。
对基本包装类型的实例调用typeof会返回"object",而且所有基本包装类型的对象都会被转换为布尔值的true;
Object构造函数会根据传入值的类型返回相应的基本类型包装的实例。
使用new调用基本包装类型的构造函数,与直接调用同名的转型函数是不一样的
不建议显式的创建基本包装类型的对象
5.6.1Boolean类型
建议永远不要使用Boolean对象
创建Boolean对象 var booleanObject=new Boolean(true/false);
基本类型与引用类型的布尔值区别:typeof操作符对基本类型返回“boolean”,引用类型返回“object”;instanceof操作符测试Boolean对象会返回true,测试基本类型的布尔值返回false
5.6.2Number类型
Number是与数字值对于的引用类型。创建Number对象:var numberObject = new Number(10);
Number类型也重写了valueOf()、toLocaleString()和toString()方法。重写后的valueOf()方法返回对象表示的基本类型数值,另外两个方法则返回字符串形式的数值。
Number类型还提供了一些用于将数值格式化为字符串的方法。
toFixed()
按照知指定的小数位返回数值的字符串表示;能够自动舍入,很适合处理货币值。不同浏览器舍入规则可能会有所不同。
toExponential()
返回以指数表示法(e表示法)表示的数值得字符串形式。接收一个参数,指定输出结果中的小数位数。
toPrecision()
可能会返回固定大小(fixed)格式,也可能返回指数(exponential)的格式;具体规则是看哪种格式最合适。这个方法接收一个参数,即表示数值的所有数字的位数(不包含指数部分)。
不建议直接实例化Number类型,而原因与显式创建Boolean对象一样。具体来讲,就是在使用typeof和instanceof操作符测试基本类型数值与引用类型数值时,得到的结果完全不同
5.6.3String类型
String类型是字符串对象包装类型。可以使用String构造函数创建
var stringObject = new String("hello world");
String对象的方法也可以在所有基本的字符串值中访问到。其中,继承的valueOf()、toLocaleString()和toString()方法,都返回对象所表示的基本字符串值。
String类型每个实例都有一个length属性
- 字符方法
访问字符串中特定字符的方法是:charAt()(返回字符)和charCodeAt()(返回字符编码)。
也还可以用方括号加数字索引来访问字符串中的特定字符
- 字符串操作方法
concat() 用于将以或多个字符串拼接起来,可接受多个参数,实践中多用+;
基于子字符串创建新字符串的方法:slice()、substr()和substring(),都返回操作字符串的一个子字符串,都接受一或两个参数。第一个参数指定子字符串的开始位置,第二个参数(在指定的情况下)表示字符串到哪结束。slice()和substring()指第二个参数指定的是子字符串最后一个字符后面的位置。而substr()的第二个参数指定的则是返回的字符个数。如果没有给这些方法传递第二个参数,则将字符串的长度作为结束位置。这三个方法不会修改字符串本身的字——只返回一个基本类型的字符串字。若参数是负数,slice()将负值与字符串长度相加;substr()负的第一个参数加上字符串的长度,负的第二个参数转换为0;substring()将所有负值参数转换为0;
- 字符串位置方法
indexOf() (从前往后)从一个字符串中搜索给定的子字符串,返回子字符串的位置。
lastIndexOf() (从后往前)
- trim()
创建一个字符串的副本,删除前置及后缀的所有空格,然后返回结果(这是字符串的副本,不影响原始字符串)
trimLeft() 删除字符串开头空格
trimRight() 删除字符串末尾空格
- 字符串大小写转换方法
toLocaleUpperCase() —— 转换大写
toUpperCase() —— 转换大写
toLocaleLowerCase() —— 转换小写
toLowerCase() —— 转换小写
- 字符串的模式匹配方法
match()匹配
search()查找
replace()替换
split()分割字符串
- localeCompare()方法
比较两个字符串,字符串在字符串参数前,返回负数,相等返回0, 之后返回正数
- fronCharCode()方法
接收一或多个字符编码,然后把它转换为字符串。
9.HTML方法(尽量不要使用)
5.7单体内置对象
5.7.1Global对象
不属于任何其他对象的属性和方法,最终都是它的属性和方法,没有全局变量或全局函数,所有在全局作用域重定义的属性和函数,都是Global对象的属性
Global对象的一些方法:
- URI编码方法
有效的URI中不能包含某些字符,而编码方法就可以对URI进行编码,替换掉无效的字符,让浏览器接受
encodeURI()整个URI,不会对本身属于URI的特殊字符进行编码
encodeURIComponent()主要用于URI中的一段,对发现的任何非标准字符进行编码
decodeURI()只能对encodeURI()替换的字符进行解码
decodeURIComponent ()能解码使用encodeURIComponent()编码的所有字符
- eval()
- 只接受一个参数,即要执行的字符串,eval()执行的代码被认为是包含该次调用的执行环境的一部分,执行的代码具有该执行环境相同的作用域,在eval()中创建的任何变量或者函数都不会被提升,严格模式下,在外部访问不到eval()中创建的任何变量或函数,为eval赋值,也错误
- Global对象的属性
- window对象
全局作用域中声明的所有变量和函数,就都是window对象的属性。
取得Global对象的方法:
var global = function(){
return;
}
5.7.2 Math对象
- Math对象的属性
- min()和max()方法
- 舍入方法
Math.ceil() 执行向上舍
Math.floor() 执行向下舍入
Math.round() 执行标准舍入
- random()返回0~1之间的一个随机数
- 其他方法
5.3Date类型
1.创建日期对象
var now=new Date();
自动获取当前日期和时间
2.创建特定日期和时间
Date.parse()因地区而异
格式例子:
6/29/2007;January 12,2004;Tue May 25 2004 00:00:00 GMT-0700;2004-05-25T00:00:00;
Date.UTC()与Date.parse()类似,但参数基于0开始
5.4RegExp类型
var expression=/模式(正则表达式)/标志(一个或多个);如var pattern1=/[bc]at/I;或用构造函数var pattern1=new RegExp(“[bc]at”,”i”);
标志:
g全局模式
i不区分大小写
m多行模式
5.4.1RegExp实例属性
global:
ignoreCase
lastIndex
multiline
source保存的是字面量形式所用的字符
5.4.2RegExp实例方法
test() 接受一个字符串,返回值是 true 或 false。
exec()检索字符串中的指定值。返回值是被找到的值。没有发现匹配,则返回 null。
5.4.3RegExp构造函数属性
这些属性分别有一个长属性名和短属性名(见表格)
5.5Function类型
函数实际是一个对象,函数名是一个指针,所以一个函数可能有多个名字
使用函数表达式定义函数时,可不使用函数名,函数末尾有分号
使用Function构造函数可接收任意数量的参数,最后一个参数看做函数体,但不推荐这种方法
5.5.1没有重载
(重载:函数或者方法有相同的名称,但是参数列表不相同的情形)
声明两个同名函数,后面的函数会覆盖前面的函数
5.5.2函数声明与函数表达式
解析器先读取函数声明,函数表达式在执行到所在行再执行
5.5.3作为值的函数
函数名本身就是变量,可以将一个函数传递给另一个函数,也可将一个函数作为另一个函数的结果返回,要返回函数的指针而不执行函数,必须去掉函数名后的圆括号
5.5.4函数内部属性
特殊的两个对象:arguments(主要用于保存函数参数,有一个callee的指针属性,指向这个arguments对象的函数)和this(引用的是函数执行的环境对象)
calle(一个函数对象的属性)保存着调用当前函数的函数引用,在全局作用域中调用当前函数,它的值为null,严格模式中,不能为函数的caller属性赋值,否则会导致错误
5.5.5函数属性和方法
函数都包含两个属性:length(函数希望接受到的命名参数的个数)和prototype(保存实例方法的真正所在,不可枚举,使用for-in无法发现),
每个函数都包含两个非继承而来的方法:apply() 和call()。都是在特定的作用域中调用函数,实际上等于设置函数体内this对象的值。apply()方法接收两个参数:一个是在其中运行的作用域,另一个是参数数组。其中第二个参数可以使Array的实例,也可以是arguments对象。
call()法与apply()方法作用相同,它们的区别仅在于接受参数的方式不同。在使用call()方法时,传递给函数的参数必须逐个列举出来
5.6基本包装类型
3个特殊的引用类型:Boolean、Number和String。每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象;基本类型值不是对象,因而从逻辑上它们不应该有方法(但它们确实有方法)。
在读取模式访问字符串时,后台都会自动完成下列处理。
(1)创建String类型的一个实例;
(2)在实例上调用指定的方法;
(3)销毁这个实例。
引用类型与基本包装类型的主要区别就是对象的生存期。使用new操作符创建的引用类型的实例,在执行流离开当前作用域之前都一直保存在内存中。而自动创建的基本包装类型的对象,则只存在于一行代码的执行瞬间,然后立即被销毁。这意味着我们不能在运行时为基本类型值添加属性和方法。
对基本包装类型的实例调用typeof会返回"object",而且所有基本包装类型的对象都会被转换为布尔值的true;
Object构造函数会根据传入值的类型返回相应的基本类型包装的实例。
使用new调用基本包装类型的构造函数,与直接调用同名的转型函数是不一样的
不建议显式的创建基本包装类型的对象
5.6.1Boolean类型
建议永远不要使用Boolean对象
创建Boolean对象 var booleanObject=new Boolean(true/false);
基本类型与引用类型的布尔值区别:typeof操作符对基本类型返回“boolean”,引用类型返回“object”;instanceof操作符测试Boolean对象会返回true,测试基本类型的布尔值返回false
5.6.2Number类型
Number是与数字值对于的引用类型。创建Number对象:var numberObject = new Number(10);
Number类型也重写了valueOf()、toLocaleString()和toString()方法。重写后的valueOf()方法返回对象表示的基本类型数值,另外两个方法则返回字符串形式的数值。
Number类型还提供了一些用于将数值格式化为字符串的方法。
toFixed()
按照知指定的小数位返回数值的字符串表示;能够自动舍入,很适合处理货币值。不同浏览器舍入规则可能会有所不同。
toExponential()
返回以指数表示法(e表示法)表示的数值得字符串形式。接收一个参数,指定输出结果中的小数位数。
toPrecision()
可能会返回固定大小(fixed)格式,也可能返回指数(exponential)的格式;具体规则是看哪种格式最合适。这个方法接收一个参数,即表示数值的所有数字的位数(不包含指数部分)。
不建议直接实例化Number类型,而原因与显式创建Boolean对象一样。具体来讲,就是在使用typeof和instanceof操作符测试基本类型数值与引用类型数值时,得到的结果完全不同
5.6.3String类型
String类型是字符串对象包装类型。可以使用String构造函数创建
var stringObject = new String("hello world");
String对象的方法也可以在所有基本的字符串值中访问到。其中,继承的valueOf()、toLocaleString()和toString()方法,都返回对象所表示的基本字符串值。
String类型每个实例都有一个length属性
- 字符方法
访问字符串中特定字符的方法是:charAt()(返回字符)和charCodeAt()(返回字符编码)。
也还可以用方括号加数字索引来访问字符串中的特定字符
- 字符串操作方法
concat() 用于将以或多个字符串拼接起来,可接受多个参数,实践中多用+;
基于子字符串创建新字符串的方法:slice()、substr()和substring(),都返回操作字符串的一个子字符串,都接受一或两个参数。第一个参数指定子字符串的开始位置,第二个参数(在指定的情况下)表示字符串到哪结束。slice()和substring()指第二个参数指定的是子字符串最后一个字符后面的位置。而substr()的第二个参数指定的则是返回的字符个数。如果没有给这些方法传递第二个参数,则将字符串的长度作为结束位置。这三个方法不会修改字符串本身的字——只返回一个基本类型的字符串字。若参数是负数,slice()将负值与字符串长度相加;substr()负的第一个参数加上字符串的长度,负的第二个参数转换为0;substring()将所有负值参数转换为0;
- 字符串位置方法
indexOf() (从前往后)从一个字符串中搜索给定的子字符串,返回子字符串的位置。
lastIndexOf() (从后往前)
- trim()
创建一个字符串的副本,删除前置及后缀的所有空格,然后返回结果(这是字符串的副本,不影响原始字符串)
trimLeft() 删除字符串开头空格
trimRight() 删除字符串末尾空格
- 字符串大小写转换方法
toLocaleUpperCase() —— 转换大写
toUpperCase() —— 转换大写
toLocaleLowerCase() —— 转换小写
toLowerCase() —— 转换小写
- 字符串的模式匹配方法
match()匹配
search()查找
replace()替换
split()分割字符串
- localeCompare()方法
比较两个字符串,字符串在字符串参数前,返回负数,相等返回0, 之后返回正数
- fronCharCode()方法
接收一或多个字符编码,然后把它转换为字符串。
9.HTML方法(尽量不要使用)
5.7单体内置对象
5.7.1Global对象
不属于任何其他对象的属性和方法,最终都是它的属性和方法,没有全局变量或全局函数,所有在全局作用域重定义的属性和函数,都是Global对象的属性
Global对象的一些方法:
- URI编码方法
有效的URI中不能包含某些字符,而编码方法就可以对URI进行编码,替换掉无效的字符,让浏览器接受
encodeURI()整个URI,不会对本身属于URI的特殊字符进行编码
encodeURIComponent()主要用于URI中的一段,对发现的任何非标准字符进行编码
decodeURI()只能对encodeURI()替换的字符进行解码
decodeURIComponent ()能解码使用encodeURIComponent()编码的所有字符
- eval()
- 只接受一个参数,即要执行的字符串,eval()执行的代码被认为是包含该次调用的执行环境的一部分,执行的代码具有该执行环境相同的作用域,在eval()中创建的任何变量或者函数都不会被提升,严格模式下,在外部访问不到eval()中创建的任何变量或函数,为eval赋值,也错误
- Global对象的属性
- window对象
全局作用域中声明的所有变量和函数,就都是window对象的属性。
取得Global对象的方法:
var global = function(){
return;
}
5.7.2 Math对象
- Math对象的属性
- min()和max()方法
- 舍入方法
Math.ceil() 执行向上舍
Math.floor() 执行向下舍入
Math.round() 执行标准舍入
- random()返回0~1之间的一个随机数
- 其他方法