您的位置:首页 > Web前端 > JavaScript

JavaScript 引用类型

2016-04-12 20:57 489 查看


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 前端