首页 > 代码库 > JavaScript笔记三:引用类型
JavaScript笔记三:引用类型
1、Object对象
创建Object对象,
var person = new Object(); var person = {
Person.name = “guoliang”; name : “guoliang”,
Person.age = 20; age : 20
};
另外属性名也可以使用字符串,,第二种属于对象字面量表示法
访问对象属性可以使用”.”或“[ ]”,当属性名包含非字母和非数字时只能使用”[ ]”访问。一般建议使用“.”。
2、Array类型
JavaScript中的数组与其他的语言不同,它可以保存人任何类型的数据,而且它的大小时动态可变的,会随着数据的增加自动增长。
var color = new Array(); //创建color数组
或var color=[];
var color = new Array(20); //创建长度为20的数组
var color = new Array(“red”,”blue”,”green”);
或 var color= [“red”,”blue”,”green”];
new可以不带,结果相同
使用length可以得到数组的长度,但是不仅仅可以只读,length还可以移除数组项或在末尾增加新项。并且如果设置的值超过当前数组大小的位置时,数组会重新计算长度值,即长度等于最后一项的索引值加1。
Array.isArray();可以判断值是不是为数组。
push和pop 可以对数组末尾进行进栈和出栈的操作,而push (末端)和shift (前端)则可以实现进队和出队的操作。unshift(前端)和pop(末端)进队和出队。
排序:reverse()和sort();它们比较的是字符串,但sort()在比较时会出现5>10的现象,因此要使用sort(compare(比较函数));
function compare(value1,value2) {
return value2-value1; //升序
}
concat(); //连接数组
slice();//得到数组中的值
splice();//删除/插入/替换
index();//从前往后
lastIndex();//从后向前
every();filter();forEach();map();some();//迭代方法
reduce(); reduceRight();//缩小方法
3、Data类型
自UTC 1970年1月1日午夜(零时)起的毫秒数保存的日期。
Data.parse(); Data.UTC();Data.now();
toDataString();toTimeString();toLocalDataString();toLocalTimeString();toUTCString();
4、RegExp类型
ECMAScript通过RegExp类型来支持正则表达式。
var expression = / pattern / flags;
模式(pattern)可以使任意的简单或复杂的正则表达式 ,标志(flags)用来标志正则表达式的行为(g:全局;i:不区分大小写 ;m:多行模式)。
exec();专门为捕获数组设计,接收应用模式的字符串,返回第一个匹配项信息的数组;index返回位置,input返回字符串。
test();判断模式与该参数是否匹配,正则表达式的valueof() 方法返回正则表达式本身
5、Function 类型
function sum(num1,num2){
return num1+num2;
}//可以使用 varanothersum=sum;此时anothersum和sum一样
var sum = function(num1,num2){
return num1+num2;
};//有分号
alert(sum(10,10));
unction sum(num1,num2){
return num1+num2;
}//如上,代码在执行之前其实已经将函数声明提升至执行环境顶部,所以即使在执行代码后面也没问题。但是函数表达式就不能了。
alert(sum(10,10));
var sum = function(num1,num2){
return num1+num2;
};//会在运行期间发生错误
作为值的函数
function callSomeFunction(someFunction,someArgument){
return someFunction(someArgument) ;
}//即一个函数可以作为另一个函数的值,也可以一个函数返回另一个函数的值
函数的内部属性:arguments和this
使用arguments.callee可以解除函数体内的代码与函数名的耦合,不再依赖于单一的函数名。
函数的属性和方法:length(函数希望接收的参数的个数)和prototype(保存所有实例方法所在)
apply();call();特定的作用域中调用函数,实际上等于社会自函数体内this的值。两者仅仅区别在接收参数的方式不同。
function sum(num1,num2){
feturn num1+num2;
}
function sum(num1,num2){
return sum.apply(this,arguments);
//return sum.call(this,num1,num2);
}//他们最大的好处是扩充函数赖以运行的作用域,对象不需要与方法有任何耦合关系。bind()还可以绑定运行域。
6、基本包装类型
Boolean、Number、String引用类型但同时也具有基本类型的行为。当它作为一个引用类型存在时只在当行代码期间,执行完后,会自动销毁。
7、单体内置对象
由ECMAScript实现提供的、不依赖于宿主环境的对象,这些对象在ECMAScript好吃呢过徐执行之前就已经存在了。开发人员不必显式的实例化内置对象,因为他们已经实例化了。除了说过的Object、Array、String还有Global和Math.
JavaScript笔记三:引用类型