引用类型:引用类型是一种数据结构,用于将数据和功能组织在一起。引用类型的值是引用类型的一个实例

一、Object

ECMAScript中的对象其实就是一组数据和功能的结合。

Object类型其实是所有它的实例的基础,换句话说,Object类型所有具有的任何属性和方法也同样存在于更具体的对象中。

constructor属性:该属性保存了用于创建当前对象的函数,即当前对象的构造函数,object类型的构造函数就是Object()

hasOwnProperty方法:用于检查给定的属性是否存在于当前对象的实例中,而不是实例的原型中

isPrototypeOf方法:用于检查对象object1(父)是否存在于另一个对象object2(子)的原型链中

toString()方法:返回对象的字符串表示

valueOf()方法:返回对象的字符串、数值或者布尔值的表示

两种创建方式:

var o = new Object()  

var o = {

  age : 22,

  name :  "小明"

}

操作方法:

增:o.sex = "男";  o.eat = function () {};

删:delete o.age;

改:o.age = 23;

查:o.name;  o[name];  (用于变量)

引用: var other = o;  other.age = 24;  console.log(o.age)  //24  o和other指向的是同一个对象。

原型:每个对象都连接到一个原型对象,并可以从中继承属性和方法。所有通过对象字面量创建的对象都连接到Object.prototype。

当我们尝试去获取某个对象的属性时,如果不能从该对象中获取到,那么js会试着向上从其原型对象中获取属性值,直到到达终点Object.prototype,如果也没找到那就是undifined。

原型连接在更新时是不起作用的。当我们对某个对象做出改变时,不会触及该对象的原型

事例:

Object.prototype.sex = "男";
var o = {
age : 22
};
console.log(o);    // {age : 22}
console.log(o.sex);  o.sex //"男" var result = o.hasOwnProperty("age");  //true
var result = o.hasOwnProperty("sex");  //false

二、Array

var arr = ["a","b","c","d","e"]  js中的数组的每一项可以保存任何类型的数据;

操作方法:

var arr = ["a","b","c","d","e"]; 

1.转换方法        

var result = arr.toString();  //"a,b,c,d,e"

var result = arr.join();  //"a,b,c,d,e"  var result = arr.join("");  //"abcde"  join默认是按","来分割的

2.栈方法        

arr.push("f");  console.log(arr);  //["a","b","c","d","e",f"]

arr.pop();    console.log(arr);  //["a","b","c","d"]

3.队列方法

arr.unshift("f");  console.log(arr);  //["f","a","b","c","d","e"]

arr.shift();  console.log(arr);  //["b","c","d","e"]

4.位置方法

var result = arr.indexOf("a");  console.log(result);  //

5.操作方法

arr.splice(3,1); //删除  console.log(arr);  //["a","b","c","e"]

arr.splice(3,1,"f"); //替换  console.log(arr);  //["a","b","c","f","e"]

arr.splice(3,0,"f"); // 插入  console.log(arr);  //["a","b","c","f","d","e"]

var result = arr.slice(2,4);//潜复制  console.log(result)  //["c","d"]

6.排序方法

var arr1 = [5,9,3,4,6];

var result = arr1.reverse();  console.log(result);  //[6,4,3,9,5]

var result = arr.sort(function(a,b){return a-b});  console.log(result);  //[3,4,5,6,9]

7.合并方法

var arr1 = ["a","b"];  var arr2 = ["c","d"];  var result = arr1.concat(arr2);  console.log(result);  //["a","b","c","d"]

数组也是引用类型的,两个变量指向同一个数组:

var arr1 = arr;  arr1.push(1);  console.log(arr);  //["a","b","c","d",1]

javascript Object与Array用法的更多相关文章

  1. 【转】javascript Object使用Array的方法

    原文: http://www.cnblogs.com/idche/archive/2012/03/17/2403894.html Array.prototype.push push向数组尾部添加一项并 ...

  2. 使用 JavaScript 实现名为 flatten(input) 的函数,可以将传入的 input 对象(Object 或者 Array)进行扁平化处理并返回结果

    请使用 JavaScript 实现名为 flatten(input) 的函数,可以将传入的 input 对象(Object 或者 Array)进行扁平化处理并返回结果.具体效果如下: const in ...

  3. 实现一个函数clone,使JavaScript中的5种主要的数据类型(包括Number、String、Object、Array、Boolean)进行值复制

    实现一个函数clone,可以对JavaScript中的5种主要的数据类型(包括Number.String.Object.Array.Boolean)进行值复制. 1 /** 对象克隆 2 * 支持基本 ...

  4. 详解Javascript中的Array对象

    基础介绍 创建数组 和Object对象一样,创建Array也有2种方式:构造函数.字面量法. 构造函数创建 使用构造函数的方式可以通过new关键字来声明,如下所示: 12 var arr = new ...

  5. javascript中 try catch用法

    javascript中 try catch用法 投稿:hebedich 字体:[增加 减小] 类型:转载 时间:2015-08-16我要评论 JS try catch语句一般在什么情况下使用?是必须使 ...

  6. Javascript Object.defineProperty()

    转载声明: 本文标题:Javascript Object.defineProperty() 本文链接:http://www.zuojj.com/archives/994.html,转载请注明转自Ben ...

  7. (The application/json Media Type for JavaScript Object Notation (JSON))RFC4627-JSON格式定义

    原文  http://laichendong.com/rfc4627-zh_cn/ 摘要 JavaScript Object Notation (JSON)是一个轻量级的,基于文本的,跨语言的数据交换 ...

  8. JavaScript中的Array.prototype.slice.call()方法学习

    JavaScript中的Array.prototype.slice.call(arguments)能将有length属性的对象转换为数组(特别注意: 这个对象一定要有length属性). 但有一个例外 ...

  9. javascript类型系统之Array

    原文:javascript类型系统之Array 目录 [1]数组创建 [2]数组操作 [3]继承的方法 [4]实例方法 数组转换 数组检测 栈和队列 排序方法 操作方法 位置方法 前面的话 数组是一组 ...

随机推荐

  1. 克隆kvm虚拟机报错ImportError: No module named 'requests.packages.urllib3'

    2018-06-21 更新系统造成kvm克隆命令报错 virt-clone -o centos--update-clone -n centos--maven-test -f /var/lib/vmdk ...

  2. WEB图表制作

    https://www.hcharts.cn/demo/highcharts/column-drilldown

  3. 基于memcache的缓存机制的6个指令

    Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached ...

  4. params传递任意参数

    namespace 传递任意参数{ class Program { static void Main(string[] args) { //可传递任意数量参数 Test(1, 2, "sas ...

  5. centos系统为php安装memcached扩展

    1. 通过yum安装 yum -y install memcached #安装完成后执行: memcached -h #出现memcached帮助信息说明安装成功 2. 加入启动服务 chkconfi ...

  6. 【Ubuntu】Vritual Box 复制方式克隆

    重装系统后之前安装的虚拟机的镜像全都不见了 ,因为重装系统盘C盘会全部重新被格式化. VtritualBox如果没有指定虚拟机存放位置,默认是会放在C盘的,C:\Users\Administrator ...

  7. php 不用第三个变量 交换两个变量的值汇总

    //方法一:$a ="abc";$b="def"; $a = $a^$b;$b = $b^$a;$a = $a^$b; //方法二:list($a, $b)= ...

  8. Path类 操作文件类

    // Path类 IO命名空间 静态类 不能创建对象类名. string str =@"E:\C#程序设计基础入门教程\(第十一天)\122\22\nee.txt"; ////in ...

  9. 1229:密码截获----java

    题目描述 Catcher是MCA国的情报员,他工作时发现敌国会用一些对称的密码 进行通信,比如像这些ABBA,ABA,A,123321,但是他们有时会在开始或结束时加入一些无关的字符以防止别国破解.比 ...

  10. win10 MySQL8.0 zip包安装及问题解决

    1.在官网下载zip包 https://dev.mysql.com/downloads/mysql/ 2.将zip包解压到自己的工作目录中 3.配置环境变量 1)添加环境变量 MYSQL_HOME E ...