Object类型与Array类型
总结--JS中的引用类型:
Object类型,Array类型,Boolean类型,Number类型,String类型,Date类型,
Function类型,RegExp类型,单体内置对象(Global对象,Math对象)
1.Object类型:我们看到的大多数其他对象都可以称为是Object对象
  1)创建Object对象的方式有两种:
    第一种是使用new操作符后跟Object构造函数
      var person =new Object();   //var person ={};
      person.name="yufan";
      person.age=20;
    第二种是使用对象字面量表示法
      var person={
        name:'yufan',
        age:20
      };
 2)访问对象的属性也有两种方法:
      alert(person['name']);
      alert(person.name);
2.Array类型:
  1)创建数组(Array对象)的基本方法有两种:
    --第一种是使用Array构造数组
      var arr=new Array('1',2,'32','ab');
    --第二种是使用数组字面量表示法
      var arr=['1',2,'32','ab'];
2)数组的length属性,表示数组元素的个数
    对于length既可以获取,又可以设置
      var arr=[1,2,3,4,5,6]
      alert(arr.length);  //6
      arr.length=3;
      alert(arr);    //1,2,3
 3)检测数组:Array.isArray()==>确定某个值是不是数组
    --if(Array.isArray(value)){
        //对数组执行某些操作
    }
    注:支持Array.isArray()方法的浏览器有IE9+,Firefox 4+,Safari 5+,Opera 10.5+,Chrome
数组的方法:
  4)转换方法:对于所有的对象都具有toLocaleString(),toString(),valueOf()方法
    数组调用toString()方法:调用了数组每一项的toString()方法,返回数组每一项以逗号分割的字符串
    数组调用valueOf方法:返回的还是数组对象的原始值
      var arr=[1,2,'abc'];
      alert(arr.toString());  //1,2,abc
      alert(arr.valueOf());   //1,2,abc
      alert(typeof(arr.toString()));  //string
      alert(typeof(arr.valueOf()));   //object
      alert(arr); //1,2,abc  alert要接收字符串参数,所以它会在后台调用toString()方法,结果与toString()方法相同
    数组调用toLocaleString()方法(把数组转换为本地字符串):返回与toString(),valueOf()方法相同的值
    但其调用的是数组每一项的toLocaleString()方法,返回数组每一项以逗号分割的字符串
      var arr=[1,2,'abc'];
      alert(arr.toLocaleString());  //1,2,abc
      var person1={
        toLocaleString:function(){
          return 'mike';
        },
        toString:function(){
          return 'nine';
        }
      };
      var person2={
        toLocaleString:function(){
          teturn 'hello';
        },
        toString:function(){
          return 'word';
        }
      };
      var people=[person1,person2];
      alert(people);  //nine,word
      alert(people.toString());   //nine,word
      alert(people.toLocaleString()); //mike,hello
 5)数组的join方法:
      --用分隔符,组合数组元素,生成字符串
       arr.join('-')    //1-2-3-4-5-6
6)数组的添加:(栈方法)
      --arr.push(val)--往数组的末尾添加,返回新数组的长度
      --arr.unshift(val)--从数组的头部添加元素,返回新数组的长度
7)数组的删除:()
      --arr.pop()--从数组的末尾删除,返回删除的项
      --arr.shift()--从数组的头部删除元素,返回删除的项
8)数组的排序(sort):
      --arr.reverse()--颠倒数组中元素的顺序
      --字符串的排序:arr.sort()--sort()方法会调用每个数组项的toString方法,
        然后比较得到的字符串,因此不能对数字进行排序,但可以对字符串排序
          var arr=['zoom','banana','apple']
          arr.sort();  //apple,banana,zoom
      --数字的排序:sort()方法可以接受一个比较函数作为参数,进行数字的排序
        function compare(value1,value2){
          return value1-value2;
        }
        var arr=[5,1,24,12];
        arr.sort(compare);
        alert(arr);   //1,5,12,24
9)数组的splice方法:删除元素/删除并向数组添加新元素,返回新数组
      1)删除:splice(起点,长度)--起点从0开始
        var arr=[1,2,3,4,5,6];
        arr.splice(2,3) //1,2,6
        arr.splice(2,0)    //没有删除,长度为零
      2)插入:splice(起点,长度,元素)
        var arr=[1,2,3,4,5,6];
        splice(2,0,'a','b') //1,2,a,b,3,4,5,6
        splice(2,2,'a','b') //1,2,a,b,5,6
10)数组的连接(concat):谁在前面先写谁
        var a=[1,2,3]
        var b=[4,5,6]
        a.concat(b);  //1,2,3,4,5,6
        b.concat(a);  //4,5,6,1,2,3
11)数组的slice方法:从某个已有的数组返回选定的元素,形成新数组,且对原来的数组没有影响
      当slice有一个参数时:从指定位置-->数组结尾
      当slice有两个参数时:从开始指定位置-->到结束指定位置
      var colors=['red','blue','yellow','black','write'];
      var colors1=colors.slice(1);  //'blue','yellow','black','write'
      var colors2=colors.slice(1,3);  //'blue','yellow','black'
12)位置方法:indexOf()/lastindexOf()
      都接受两个参数:'要查找的项'和(可选的)'表示查找起点位置的索引'
      indexOf:从数组的开头(位置0)往后查找
      lastindexOf():从数组的末尾开始往前查找
      两个方法都返回要查找的项在数组中的位置,没有查找到则返回-1
      var arr=[1,2,5,7,5,9];
      alert(arr.indexOf(5));  //2
      alert(arr.lastindexOf(5)); //4
    注:支持浏览器为:IE9+,Firefox 3+,Opera 9.5+,Chrome
Object类型与Array类型的更多相关文章
- JavaScript系统学习小结——Object类型、Array类型
		
今天学习JavaSript中引用变量中的Object类型和Array类型: 1. Js中大多数引用类型值都是Object类型的实例,Object类型在应用程序中存储和传输数据时,是非常理想的选择: 创 ...
 - JavaScript的进阶之路(三)引用类型之Object类型和Array类型
		
引用类型 Object类型 function a(num){ if(num>3){ a(--num); } console.log(num); } a(5); //如何创建对象的实例 var o ...
 - 引用类型--Object类型、Array类型
		
引用类型的值(对象)是引用类型的一个实例.在ECMAScript中,引用类型是一种数据结构,它描述的是一类对象具有的属性和方法. 对象是某个特定引用类型的实例,新对象是使用new操作符后跟一个构造函数 ...
 - object类型转换为Array类型
		
var obj = {a: 1, b: 2, c: 3}; // .... var arr = []; for(var key in obj){ if(!obj.hasOwnProperty(key) ...
 - 判断javaScript变量是Ojbect类型还是Array类型
		
JavaScript是弱类型的语言,所以对变量的类型并没有强制控制类型.所以声明的变量可能会成为其他类型的变量, 所以在使用中经常会去判断变量的实际类型. 对于一般的变量我们会使用typeof来判 ...
 - js常用API 数据类型  基本类型,基本包装类型,引用类型  Object String Array Boolean Number  Date  Math
		
数据类型 变量.作用域及内存 基础类型(primitive value):Undefined.Null.Boolean.Number和String.这些类型在内存中分别占用固定大小的空间,他们的值保存 ...
 - 《JavaScript高级程序设计》读书笔记 ---Array 类型
		
除了Object 之外,Array 类型恐怕是ECMAScript 中最常用的类型了.而且,ECMAScript 中的数组与其他多数语言中的数组有着相当大的区别.虽然ECMAScript 数组与其他语 ...
 - javascript数据类型之Array类型
		
Array类型 除了Object之外,Array类型恐怕是ECMAScript中最常用的类型了.而且,ECMAScript中的数组与其他多数语言中的数组有着相当大的区别.虽然ECMAScript数组与 ...
 - php--->把json传来的stdClass Object类型转array
		
php把json传来的stdClass Object类型转array 1.Php中stdClass.object.array的概念 stdClass是PHP的一个基类,即一个空白的类,所有的类几乎都继 ...
 
随机推荐
- JDBC链接oracle已经mysql的测试
			
1.链接oracle package cn.itcast.mybatis.dao; import java.sql.Connection;import java.sql.DriverManager;i ...
 - javascript 原型链
			
浅谈JS原型链 原型链 ECMAScript中描述了原型链的概念.我们知道ECMAScript并不像C++,Java那样使用类,但是对象仍然可以通过多种方式创建,其中就有构造函数方式.每个构造函数都有 ...
 - IOS第18天(9,核心动画-动画组)
			
****动画组 // 核心动画都是假象,不能改变layer的真实属性的值// 展示的位置和实际的位置不同.实际位置永远在最开始位置 #import "HMViewController.h&q ...
 - 解决thrift: ···No such file or directory问题
			
感谢Anker分享:error while loading shared libraries: xxx.so.x" 错误的原因和解决办法 今天在装thrift的时候遇到一个这样的问题: ro ...
 - php执行root命令
			
一.确定php的sysem等函数可用 二.编写c程序,如ipt.c #include <stdio.h>#include <stdlib.h>#include <sys/ ...
 - 如何在Rails中执行Get/Post/Put请求
			
require 'open-uri' require 'json' require 'net/http' class CoupleController < ApplicationControll ...
 - DBXJSON和ADO的效率真的好低....
			
项目需要写了一个JSON和DataSet互转的单元.....支持了Delphi自带的几种DataSet, 结果发现DBXJSON和ADO的效率真的是好低啊........-_-.... 开发环境是XE ...
 - Linux系统下安装MongoDB 指南
			
1.首先连接到Linux系统. 2.到MongoDB官网下载合适的MongoDB安装压缩包. 下载页面:https://www.mongodb.org/downloads#production. 这里 ...
 - C#中的延迟加载
			
什么是延迟加载? 延迟加载顾名思义就是:推迟加载的时机,当真正使用的时候才加载. 通常在创建一个大对象时,有些属性我们可以在使用到的时候才去创建(设置属性的值),这个可以有效的提升系统性能. 示例 ...
 - javascript源代码学习之五——jQuery.deferred
			
jQuery.Defered——异步队列用于管理一组回调函数(成功resolve,失败reject,消息progress),基于上一节实现的jQuery.callbacks完成. done,fail, ...