深入了解JavaScript引用类型之--Object、Array

1、Object类型

  对象是某个特定引用类型的实例,新对象有两种创建方式:

  i、使用new操作符调用构造函数来创建。

1 var person = new Object();
2 person.name = "zhangsan";
3 person.age = 20;

  ii、使用对象字面量表示法来创建对象,可以简化创建包含大量属性的对象的创建过程。

1 var person = {
2     name = "zhangsan",
3     age = 20
4 };

  var person = {} <==> var person = new Object();创建一个只包含默认属性和方法的对象。通过对象字面量创建对象时不会调用Object构造函数的.

  对象字面量也是向函数传递大量可选参数的首选方式,通常必须值使用命名参数,而大量的可选参数则用对象字面量封装。这里display方法没有命名参数,可以通过arguments参数对象获取到传入的参数列表。arguments[1]获取到的就是这个匿名对象。访问对象的属性可以 对象.属性 或者 对象["属性"],person.name 或者person["name"]。

function display(){
    alert(arguments[0]);
    console.log(typeof arguments[1].age);
}

display(123, {name : "zhangsan", age : 20});//输出20

2、Array类型

  ECAMScript中的数组每一项可以保存任何类型的数据,也就是说如果第一项保存字符串,第二项可以保存数字...数组的大小可以动态调整,随着数据的添加自动增长以容纳新增数据,java的数组的长度可是不变的,这个数组功能有点强大...javascript数组的这个特性感觉有点像java中List集合。写着写着思考到什么时候在java中用数组或者集合,不跑题。

  创建数组的方式有以下两种:

1 //1.
2 var colors = new Array();
3 var colors = new Array("red", "blue");//可以省略new操作符,如果看到不要奇怪
4
5 //2.利用数组字面量创建数组
6 var colors = ["red", "blue"];

  数组的length属性:不是只读的,可以通过修改数组的lenght属性改变数组的长度(添加元素,删除元素);

var colors = ["red", "blue"];
colors.length = 3;
console.log(colors[2]); //undefined

  这时数组的长度变成了3,最后这个语句会输出undefined;

  此外利用length属性也可以方便的在数组的末尾添加新项。这个比较有趣...大家都知道数组的下标从0开始,最大下标是lenght-1.

1 var colors = ["red", "blue"];
2 colors[length] = "black"; 

  下面开始介绍数组的具有的功能强大的方法。(并不是所有)

  1、栈方法:栈的数据结构是后进先出
  push(): 把元素添加到数组的末尾,返回数组长度;pop():移除数组末尾最后一个元素,并返回移除的元素。

  2、队列方法:先进先出
  shift():移除数组中的第一项并返回该项,unshift():把元素添加到数组的第一项。

  3、重排序方法:sort()、reverse(),我想这两个方法有什么用处大家看名字就应该知道。下面来看重点了解下sort方法。

1 var values = [1, 2, 5, 10, 15];
2 alert(values.sort());//1,10,15,2,5

  返回的结果有点出乎我们的预料,原因在于即使数组排序的时候全都是数字,比较的也是字符串的大小,就是比较的那个什么码来着...那么要对数字进行正常的排序要怎么解决呢?sort方法可以接收一个比较器方法,当这个返回负数的时候,会把value1放到前面,返回0表示两个值相等,返回正数的话就会把value1放到后面。

1 var values = [1, 2, 5, 10, 15];
2 alert(values.sort(compare));  //1,2,5,10,15
3 function compare(value1, value2){
4     return value1 - value2;
5 }

  4、操作方法

  concat():可以把传入的数组拼接到原数组的末尾
  slice():类似于字符串的截取方法subString
  splice():很强大的一个方法,主要用于向数组中插入项。还可以删除项、替换项。
    删除splice(要删除的第一项位置,要删除的项数),
    插入splice(插入位置,0,插入内容);
    替换splice(位置,替换项数,替换内容);

  5、位置方法

  indexOf():从头开始查找 lastIndexOf():末尾开始查找
  比较用的是全等操作符(===),因此要查找的项必须严格相等。ps:你真的了解JavaScript中的==吗?

  6、迭代方法

  every(), filter():返回符合条件的数组,你要筛选符合某些条件的项时,很有用吧。 foreach(), map():返回进行特定处理的数组, some()。

1 var num = new Array(1, 2, 3, 4, 5, 10);
2 var newArray = num.filter(function(item, index, array){return item > 2;});
3 alert(newArray);//3, 4, 5, 10

  Over.如果觉得不错,请帮忙点下推荐,给我点动力。另外有错误的地方欢迎大家指出,共同学习进步。感谢您的浏览!

时间: 2024-10-06 00:10:51

深入了解JavaScript引用类型之--Object、Array的相关文章

JavaScript引用类型之Object类

ECMAScript中的Object类跟Java中的Object类相似,ECMAScript中的所有类都由这个类继承而来,Object类中的所有属性和方法都会出现在其它类中,所以理解Object类,就可以更好的理解其它类. 对象的创建 JavaScript的对象是属性的容器,其中每个属性都拥有名字和值.属性的名字可以是包括空字符串在内的任意字符串.属性值可以是除undefined值之外的任何值. JavaScript里的对象是无类型的.它对新属性的名字和属性的值没有限制.对象和适用于汇集和管理数

javascript引用类型之数组Array

Array:数组中的每一项可以保存任何类型的数据,且数组的大小是动态调整的(最多可包含4294967295项,大约43亿项) [1.1]数组创建: [1.1.1]使用Array构造函数(在使用Array构造函数时,也可以省略New操作符) e.g. var colors = new Array(); var colors = new Array(20); var colors = new Array('red','blue','green'); var colors = Array(3); [注

【javascript 引用类型(一)】

javascript 的引用类型大致分为:Object 类型.Array 类型.Date 类型.RegExp 类型.Function 类型.基本包装类型和单体内置对象.这里我们着重介绍 Object 类型.Array 类型和 RegExp 类型. [Object 类型] 创建 Object 实例的方式有两种,一种是使用 new 操作符后跟 Object 构造函数,代码如下: var person = new Object(); person.name = 'Nicholas'; person.a

ExtJS学习-----------Ext.Object,ExtJS对javascript中的Object的扩展

关于ExtJS对javascript中的Object的扩展,可以参考其帮助文档,文档下载地址:http://download.csdn.net/detail/z1137730824/7748893 下面对其中的方法进行介绍: (1)chain,把当前传入的对象当成新创建对象的原型. chain( Object object ) 使用给定对象作为原生链返回一个新对象. Parameters object : Object 创建新对象的原生链. 实例: var obj={ name:'张三', ag

JS_funciton,object,Array

今天学习了js数据类型的function,Object,Array 1.function是object的一种,也是一种数据类型--可以存储在变量.数组.对象中,也可以作为参数传递到方法中去,这是一个比较新的概念,也是与java,c#中的函数概念不一样的地方(以前只知道js中的function可以执行某个功能,接受参数.返回某个值,原来还可以当成数据值来传递,和number,string类型没两样!) function的两种定义方式: 1 //1 2 function test(msg) { 3

《javascript 高级程序设计》--Array重新排序

arry 存在两个可以直接用来重排序的方法:reverse()和sort(). reverse():会对反转数组项的顺序. sort():按升序排列数组项. 原理:sort方法会调用每一个数组想的toString()转型方法,然后得到的字符串,来确定如何排序. 例子: var values1 =[0,1,5,10,15]; values1.sort(); console.log('sort',values1); 结果:sort [0, 1, 10, 15, 5] 如果比较的是数值的那么上述结果就

[Ramda] Pluck &amp; Props: Get the prop(s) from object array

Pluck: Get one prop from the object array: R.pluck('a')([{a: 1}, {a: 2}]); //=> [1, 2] R.pluck(0)([[1, 2], [3, 4]]); //=> [1, 3] Props: R.props(['x', 'y'], {x: 1, y: 2}); //=> [1, 2] R.props(['c', 'a', 'b'], {b: 2, a: 1}); //=> [undefined, 1,

(object) array

1 <?php 2 $current_language = (object)array 3 ( 4 'name' => '火星文', 5 'timezone' => 'Asia/Tokyo', 6 'author_name' => 'who', 7 'is_beta' => FALSE 8 ); 9 10 var_dump($current_language); 11 echo $current_language->name; 12 die(); 1 D:\wamp64

速战速决 (2) - PHP: 数据类型 bool, int, float, string, object, array

[源码下载] 作者:webabcd 介绍速战速决 之 PHP 数据类型 bool, int, float, string, object, array 示例1.数据类型: bool, int, float, string, objectbasic/type1.php <?php /** * 数据类型: bool, int, float, string, object */ // 布尔类型(true, false 不分大小写) $b = true; if ($b) { echo "true&