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

一、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. [转] Spring Boot特性

    [From] http://blog.javachen.com/2015/03/13/some-spring-boot-features.html 1. SpringApplication Sprin ...

  2. 地牢逃脱----DFS搜索最优解

    https://www.nowcoder.com/practice/0385945b7d834a99bc0010e67f892e38?tpId=85&tqId=29831&tPage= ...

  3. windos下redis服务的后台启动

    1. 进入 DOS窗口 2. 在进入Redis的安装目录 3. 输入:redis-server --service-install redis.windows.conf --loglevel verb ...

  4. archlinux安装的软件

    1. 火狐浏览器 #pacman -S firefox  使用ffmpeg播放HTML5的多媒体内容  $sudo pacman -S ffmpeg  https://wiki.archlinux.o ...

  5. Linux-密码复杂度限制

    前言 设置一个复杂的密码,可以有效的提升系统的安全性.在Linux上有PAM(Pluggable Authentication Modules)里面有一个pam_cracklib.so来控制密码的复杂 ...

  6. oracle 操作实例(一)----redolog 损坏恢复

    一,实验前的准备 数据库全备保证自己没成功还能补救一下 vim full.sh export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACL ...

  7. HDFS基本工具类的实现

    package com.shikun.HdfsTool;import java.io.File;import java.io.IOException;import java.net.URI;impor ...

  8. 前端性能优化插件 --- PageSpeed Insights

    对于前端工程师来说,前端性能优化始终都是非常重要的一环,它决定了用户体验, 决定了一个用户是否愿意在页面的加载浪费时间, 从而丢失用户. 所以前端性能优化是非常重要的. 下载地址 https://ch ...

  9. TOJ 1883 Domino Effect

    Description Did you know that you can use domino bones for other things besides playing Dominoes? Ta ...

  10. Oracle11gExpress和PL/SQL Developer安装

    Oracle11g为64位版本,PL/SQL Developer为32位版本 1.安装64为Oracle数据库/ 适用于 Microsoft Windows (x64) 的 Oracle Databa ...