Javascript学习日志 (三) 引用类型
2012-12-14 12:13
218 查看
1 Object类型
1.1 创建实例的方式:new方式:
var obj = new Object();
对象字面量方式:
var obj = {
[code] name : "zich",
age : 26 // 最后一个不能加逗号
};
[/code]
为对象增加属性或方法:
obj.number = 10;
obj.study = function() {};
访问对象属性的方式:
点访问:obj.name;
方括号访问:obj[“name”],此时必须以字符串形式填入,此方法可以通过变量来访问属性(var property = “name”; obj[property];).
2 Array类型
javascript中的数组与C/Java中的不一样,javascript中的Array存储的每一项不一定都是同一类型的值,可以同时存在String, Number, Null, 甚至是Object。2.1 创建一个Array方式
var arr1 = new Array(); // 创建了一个空数组
var arr2 = new Array(n); // 创建了一个含有n个元素的数组
还可以指定具体项的内容来创建:
var arr3 = new Array(“Tom”, “Jim”, “Hob”); // 创建了含有三个元素分别为Tom, Jim, Hob的数组
使用字面量方式创建:
var arr4 = [“Tom”, “Jim”, “Hob”]; // 与arr3的创建效果一样
var arr5 = []; // 结果类似于arr1
2.2 Array的属性
length:此属性值为array的长度,并且可以通过改变length的值来增加和减少数组的长度。
2.3 Array方法
isArray(value):检查value是否为一数组对象;
toString():返回由数组中各元素的字符串形式以逗号分隔而拼接起来的字符串(如:arr3.toString;—> “Tom,Jim,Hob”);
valueOf():返回数组本身;
toLocalString():类似于toString();
join():接收一个参数,此参数为连接符号,将数组中的元素转换成字符串之后使用该连接符连接起来,返回连接后的字符串;
push():任意个参数,将这些参数添加到数组末尾,返回修改后数组的长度(LIFO);
pop():从数组末尾移除一项,返回移除的项(LIFO);
shift():移除数组的第一个项并返回该项,和push()一起用可实现FIFO队列操作;
unshift():在数组前面插入任意个项,与pop()一起可以实现前端插入和后端删除操作;
reverse():逆排序;
sort():转换成字符串之后,按照字典序进行排序,参数可以是比较函数,决定排序规则;
concat():没参数时只执行简单的复制副本,一个或多个数组时,会将这些数组中的每项添加到结果数组中,参数为非数组时只简单的将值添加到结果数组的结尾;
slice():一个或多个,作用是提取数组元素,如果一个参数,则提取var1-length之间的元素,两个参数时提取var1-var2之间的元素,但不包括var2,返回提取后元素构成的数组;
splice():删除/插入/替换操作,具体视参数内容而定
删除:两个参数,var1表示要删除的第一项的位置,var2表示要删除的个数;
插入:任意个参数,var1插入的位置,var2=0,其他参数表示即将被插入的项;
替换:任意个参数,var1替换开始的位置,var2要替换的个数,其他参数表示要替换的具体项,另外这个var2与后面要的其他参数个数不一定要一样。
indexOf():从头开始找,一个参数时,表示从var1索引处开始找,两个参数时表示在var1-var2之间查找,没找到返回-1;
lastIndexOf():从结尾开始查找,其他类似indexOf();
数组迭代方法,每个方法接收两个参数,第一个参数为一个函数f,此函数接收三个参数,分别为:数组项的值,该项在数组中的索引,和数组对象本身:
every():对数组每一项执行f函数,如果f都返回true,则返回true,否则false;
filter():对数组每一项执行f函数,返回一个数组,该数组由执行f函数返回true的元素组成;
forEach():对数组每一项执行f函数,无返回值;
map():对数组每一项执行f函数,返回每次函数f调用返回的结果组成的数组;
some():对数组每一项执行f函数,如果有一项返回true,则返回true,否则false,有点像every();
归并方法:
reduce():左 —> 右;
reduceRight:右—> 左。
3 Date类型
var dt = new Date();
美国浏览器格式:
“月/日/年”, 12/12/2012;
“英文月明 日,年”,December 12,2012;
“英文星期几 英文月名 日 年 时:分:秒 时区”;
ISO 8601扩展格式:YYYY-MM-DDTHH:mm:ss:sssZ;
方法:
parse():将合法日期格式转换成ms数,不合法的格式返回NaN,用法:Date.parse(“December 12,2012”);
UTC():参数分别为 年,月(0-11),天(1-31),小时数(0-23),分钟,秒以及毫秒,年和月两个参数为必须,其他可选;
4 RegExp类型
var expr = /pattern/flags;
4.1 flags:
g:全局模式,应用于所有字符串,而不是发现第一个匹配时立即停止;
i:忽略大小写;
m:多行模式,即查找多行;
4.2 需要转义的元字符:
( [ { \ ^ $ | ) ? * + . ] }
4.3 RegExp实例属性
global:布尔值,是否设置了g标志;
ignoreCase:布尔值,是否设置了i标志;
lastIndex:整数,表示开始搜索下一个匹配项的字符位置,从0开始;
multiline:布尔值,是否设置了m标志;
source:正则表达式的字符串表示。
4.4 RegExp实例方法
exec():参数,应用模式字符串,返回包含第一个匹配项信息的数组,无匹配返回null,没有设置g时,始终返回第一个匹配项,设置了,每次调用都会继续查找新的匹配项;
test():检查文本是否与pattern匹配;
4.5 构造函数属性
input/$_:最近一次要匹配的字符串;
lastMatch/$&:最近一次匹配的项;
lastParen/$+:最近一次匹配的捕获组,以上三个opera未实现;
leftContxt/$ ':input字符串中lastMatch之前的文本;
multiline/$*:布尔值,是否所有表达式都是用多行模式;
rightContext/$’:Input字符串中的lastMatch之后的文本;
5 Function类型
5.1 函数声明:
function f() {},javascript会将其提升到顶部;
5.2 函数表达式:
var f = function() {};
5.3 函数内部属性
arguments,保存了传进来的所有参数,可通过下标方位arguments[0], …,arguments拥有callee属性,callee为一指针,它指向拥有该arguments对象的函数,所以f的arguments.callee == f;
this:当前对象;
函数对象的属性:caller,指向调用该函数的函数,function ff() { f(); }, function f() { alert(arguments.callee.caller); //输出为ff函数体的代码 }
6 基本包装类型
针对基本类型而产生的包装类型原理:后台创建一个对应的基本包装类型的对象,从而使其能够拥有属性或方法来操作这些数据,创建之后在实例上调用指定方法,完成调用之后立即销毁该实例;
字符串操作方法:
slice(start[, end]):截取start-end之间的字符,不含end;
substring(start[, end]):取子串;
substr(start[, num]):去子串,但第二个参数表示的是要取的个数;
indexOf(substr):包含子串的索引,从头开始搜索;
lastIndexOf(substr):包含子串的索引,从后开始搜索;
trim():去掉字符串前后的空格,返回之后的字符串副本,本体不变;
toLowerCase(), toLocaleLowerCase():转换成小写,后者可根据当地环境而转换,推荐使用;
toUpperCase(), toLocaleUpperCase():转换成大写,同上;
match():字符串模式匹配,用法:text.match(pattern);
localeCompare():字符串比较,返回 >0, =0, <0;
fromCharCode();参数为:字符编码,作用是将参数中的所有字符编码转换成字符再组合成字符串返回;
7 Global, Window对象
8 Math对象
Math.ceil():向上舍;
Math.floor():向下舍;
Math.round():标准舍入;
Math.random();产生随机数,val = floor(Math.random() * num + lowVal);,产生最小为lowVal个数为num之间的随机一个数;
相关文章推荐
- JavaScript之面向对象学习五(JS原生引用类型Array、Object、String等等)的原型对象介绍
- 自我学习而已——javascript——引用类型基础
- JavaScript学习笔记——引用类型:Array类型
- JavaScript入门学习笔记(2)—— 引用类型
- JavaScript高级程序设计学习笔记--引用类型
- javascript高级程序第三版学习笔记【基本类型和引用类型】
- javascript 引用类型学习
- javascript学习笔记 - 引用类型 Object
- 跟我学习javascript的基本类型和引用类型
- javascript学习——引用类型总结
- javascript学习笔记 - 引用类型 Array
- Javascript学习笔记05——引用类型
- JavaScript学习之 引用类型
- JavaScript高级程序设计学习总结四(JavaScript引用类型二)
- 【JavaScript学习】引用类型
- JavaScript学习笔记整理之引用类型
- javascript学习笔记 - 引用类型 RegExp
- JavaScript学习笔记——引用类型:Object类型、function类型
- javascript学习笔记 - 引用类型 Function
- JavaScript高级程序设计学习笔记第五章--引用类型(函数部分)