潜说js对象和数组

上传人:枫** 文档编号:507803209 上传时间:2023-08-07 格式:DOCX 页数:8 大小:15.70KB
返回 下载 相关 举报
潜说js对象和数组_第1页
第1页 / 共8页
潜说js对象和数组_第2页
第2页 / 共8页
潜说js对象和数组_第3页
第3页 / 共8页
潜说js对象和数组_第4页
第4页 / 共8页
潜说js对象和数组_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《潜说js对象和数组》由会员分享,可在线阅读,更多相关《潜说js对象和数组(8页珍藏版)》请在金锄头文库上搜索。

1、潜说js对象和数组/*数组和对象【JavaScript权威指南 第五版】*/*对象:是一个无序属性集合,每个属性都有自己的名字和值*/*创建对象简单方法,对象直接量*/var obj = ;var obj = (name: maxthon;var obj = (name: (, text: ;/*可使用new操作符*/var a =new Array();var d =new Date();var r =new RegExp(javascript,i);var o =new Object();/varo=(;/*注:new操作符后跟构造函数,所以typeof Array; / function

2、typeof Object; / functionObject 是 Function 的实例.Function是特殊的对象,也是Object的实例.*/*对象属性*/使用.符合来存取属性的值./注:同时可使用,里面使用属性名(可使用变量,这点特别有用).var t = (;t.text = hello;t.o = (;t.o.name = rd;t.n =;var t = (text: hello;console.log(t.text); / hello;/补充:通常使用关键字var来声明变量,但是声明对象属性时,不能使用var声明/*对象枚举*/var F = function () (;F

3、.prototype.name = RD;var obj = new F;for (var key in obj)(console.log(key); / name;/仅枚举对象自身,不沿原型链向上查for (var key in obj) (if (obj.hasOwnProperty(key) ( console.log(key); / /*注:for in不能枚举出预定义属性;toString. */*检查属性存在性*/window.a = rd;console.log(a in window); / true;var F = function () (;F.prototype.name

4、 = RD;var obj = new F;console.log(name in obj); / true;var toString = Object.prototype.toString;/如果对象obj,含有方法getName,则执行它;if (obj.getName & toString.call(obj.getName) = object Function) ) ( obj.getName();/补充:console.log(null = undefined); / true;console.log(null != undefined); / true;/*删除属性*/delete

5、obj.name;/补充:使用delete操作符,不能删除使用var声明的变量;/*作为关联数组的对象*/取对象属性: obj.name;objname; / 这里 name 为字符串./使用表示时,属性名是用字符串来表示的.那么可/在运行过程中进行添加等操作/注:当此属性是做为变量传递时,特别有用./又称关联数组 /*映射:JavaScript对象把字符串(属性名)映射成值.*/for (var key in obj) (console.log(key); / key属性名,此处做为值存在./*通用的Object属性和方法JavaScript中所有对象都继承自Object类;1, const

6、ructor 属性.指向其构造函数.*/var F = function () (;var f = new F;console.log(f.constructor = F); / true/构造函数的原型存在属性constructor指向自己;F. prototype.constructor = F;/补充:var F = function () (;var G = function () (;G. prototype = new F;var g = new G;console.log(g.constructor = F); / true;console.log(g.constructor =

7、 G); / false;/ 可使用 g instanceof F;/*2, toString()方法*/name: maxthon.toString(); / object Object,/*数组使用toString方法,把会元素组成字符串,其它对象会转化为object Object;函数使用原始toString方法,会得到函数源码*/a, b, 1, false, e,f, .toString();/ a,b,1,false,e,f,object Objectfunction t() console.log(test);t.toString();/源码/*3, toLocalString(

8、);返回对象的一个本地化字符串4, valueOf();在转化为基本类型时,会使用到.valueOf/toString.5, hasOwnProperty();6, propertyIsEnumberable();是否可枚举出来;7, isPrototyeOf();a.isPrototyeOf(b);如果a是b的原型,则返回true;*/var o = ; / new Object;Object.prototype.isPrototyeOf(o);/ true;Object.isPrototyeOf(o);/ false;o.isPrototyeOf(Object.prototype);/ f

9、alse;Function.prototype.isPrototyeOf(Object); / true;/*【闭包是存在函数实例,垃圾没有回收是存在赋值引用】*/*数组:有序的、值的集合;每个值,也叫元素,对应一个下标;下标是从0开始;数组中值,可以为任何类型.数组,对象,null, undefined.*/创建.var arr =;var arr = new Array();var t =;var arr = 1,2,3, null, undefined, , (, t;/*使用new操作符创建数组的3种情况:*/var arr = new Array();/ ,和直接量相同var arr

10、 = new Array(5);console.log(arr);/ 长度为5; 直接量是无法做到的./ ; JavaScript 引擎会无视 undefined;var arr = new Array(5);var arr = new Array(test);/ 值为5;/ 值为test;/*相关实例*/ var s = 1, 2, 3;s5 = a;console.log(s);1, 2, 3, undefined, undefined, a/*数组的读和写*/value = array0;a1 = 3.14;i = 2;ai = 3;aai = a0;/数组- 对象- 属性array.t

11、est = rd;/数组下标大于等于0,并且小于2的32次方减1的整数./其它值,JavaScript会转化成字符串,做为对象属性的名字,不再是下标.var array = ;array9 = 10; / array 长度会变成 10;/注:JavaScript解释器只给数组下标为9的元素分配内存,其它下标无.var array = ;array.length = 10; / 添加 array 的长度;arrayarray.length = 4;/*删除数组元素*/ delete运算符把一个数组元素设置为undefined值,但是元素本身还是存在的./真正删除,可以使用:Array.shift

12、();【删除第一个】Array.pop();【删除最后一个】Array.splice();【从一个数组中 删除一个连续范围】或修正Array.length长度;/*相关实例*/var a = 1, 2, 3;delete a1;console.log(a); / 1, undefined, 3;/*补充:JavaScript权威指南第五版59页由var声明的变量是永久性的,也就是说,用delete运算符来删除这些变量将会引发错误.但:在开发者工具里面,是可以删除的.而在网页中,正如书上所写.*/*数组长度*/ .length;/*遍历数组*/var array = 1, 2, 3, 4, 5;

13、for (var i = 0, l = array.length; i l; i+) (console.log(arrayi);array.forEach(function (item, index, arr) (console.log(item););/*截取或增长数组:修正length长度,前面已提过*/*多维数组*/1, 2/*数组方法*/ joinvar array = 1, 2, 3, 4, 5;var str = array.join(); / 1,2,3,4,5var str = array.join(-); / 1-2-3-4-5/注:此方法与String.split()方法相

14、反;/ reverse();var array = 1, 2, 3, 4, 5;array.reverse(); / 5, 4, 3, 2, 1/注:修改原数组;/ sort();var array = 1, 3, 2, 4, 5, 3;array.sort();/ 1, 2, 3, 3, 4, 5;/*注:数组中存在未定义元素,把这些元素放到最后*/*同时可自定义排序,sort(func);func接收两个参数,如果第一个参数应该位于第二个参数之前,那么比较函数将返回一个小于0的数,相反,返回大于0的数.相等,返回0;*/array.sort(function (a, b) ( return b - a;);/实例:按奇数到偶数,并且从小到大排序1, 2, 3, 4, 5, 6, 7, 2, 4, 5, 1.sort(function (a, b) (if (a %

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号