引用类型:Object、Array

Object:

  person.name   =>推荐,除非必须使用变量([])来表示

  person["name"]

  区别:[]可以通过变量来访问(出现关键字、保留字、导致语法错误的字符都可以通过方括号来表示)

Array:

  构造函数:

    var colors = Array(3)  =>数组length:3

    var color = Array('red')  =>数组length:1

  数组字面量:

    colors = ['red','yellow','blue']

  检测数组:

    Array.isArray()

  转换方法:

    toLocalString()

    toString()       转成字符串,用typeof弹出的是string

    valueOf()       返回的还是数组,用typeof弹出的是object

  栈方法(后进先出)和队列方法(先进先出):

    push() 进,返回值:数组的长度 

    pop()  出,数组末尾最后一项,返回值:移除的项

    unshift()  进,返回值:数组的长度

    shift()      出,数组第一项,返回值:移除的项

    后进先出:  push()    pop()

    先进先出:  push() shift()

  重排序方法:

    reverse()  反转

    sort()  排序,字符串排序,实现数值排序,需要在sort里接收函数,即:

      sort(function(a,b){

        return a-b;          从小到大

        return b-a;    从大到小

      })

    正数交换位置

  操作方法:

    concat()  连接起来

      var color = ['red']

      console.log(color.concat('yellow','blue'))    =>red,yellow,blue

    slice()   截取子串

      1个参数:当前位置到末尾

      2个参数:当前位置到结束位置(不包括结束位置)

      参数接受负数,结束位置<开始位置,返回空数组,即slice(4,3),为空数组

  1.       var colors = ['red','yellow','blue','green','grey']
  2.  
  3.       console.log(colors.slice(1)); =>'yellow','blue','green','grey'
  4.  
  5.       console.log(colors.slice(1,3)); =>'yellow','blue'
  6.  
  7.       console.log(colors.slice(-2,-1) =>'green',相当于slice(3,4),即length-2,length-1

    splice()  删除、替换、插入,返回值为删除的项

  1.       删除(2个参数)
  2.  
  3.         var colors = ['red','green','blue']
  4.  
  5.         console.log(colors.splice(0,1)); =>返回值为删除的项,即'red'
  6.  
  7.         console.log(colors) =>'green','blue'
  8.       替换(3个参数)
  9.         console.log(colors.splice(1,1,'yellow','purple')); =>'green'
  10.         console.log(colors) =>'red','yellow','purple','blue'
  11.       删除(3个参数,第2个参数为0)
  12.  
  13.         console.log(colors.splice(1,0,'yellow','purple')); =>空
  14.  
  15.         console.log(colors) =>'red','yellow','purple','green','blue',注:在位置1前面插入元素

  位置方法:  

    indexOf()  从前往后

    lastIndexOf()  从后往前

    没有找到返回-1,是“全等”操作

  1.     var numbers=[1,2,3,4,5,4,3,2,1]
  2.     console.log(numbers.indexOf(4)) =>3
  3.     console.log(numbers.lastIndexOf(4)) =>5
  4.     console.log(numbers.indexOf(4,4)) =>5,表示从第4位开始向后找数字‘4
  5.     console.log(numbers.lastIndexOf(4,4) =>3,表示从第4位开始向前找数字‘4

  迭代方法:(IE9+)

    (里面包括函数,这个函数中有三个参数:数组项的值item、该项在数据中的位置index、数组对象本身)

    every()、some()

    查询数组中的项是否满足某个条件,区别在于:every(),传入的函数必须第一项返回true,才会返回true(and)

                         some(),传入的函数只有某一项返回true,就返回true(or)

  1.     var numbers=[1,2,3,4,5,4,3,2,1]
  2.  
  3.     var everyResult = numbers.every(function(item,index,array)){
  4.  
  5.       return (item>2)
  6.  
  7.     }
  8.  
  9.     console.log(everyResult)=>false
  10.     如果将every改成some,结果为true

    filter(),筛选,查询符合某些条件的所有数组项

  1.     var filterResult = numbers.filter(function(item,index,array){
  2.  
  3.       return (item>2)
  4.     })
  5.  
  6.     console.log(filterResult) =>[3,4,5,4,3]

  map(),用来对数组项进行运算

  1.     var mapResult = numbers.map(function(item,index,array){
  2.  
  3.       return (item*2)
  4.     })
  5.     console.log(mapResult) =>[2,4,6,8,10,8,6,4,2]

  forEach(),对数组中的每一项运行传入的函数,无返回值,本质上与for一样

  归并方法:

      (里面包括函数,这个函数中有四个参数:前一个值prev、当前值cur、索引项index、数组对象array)

    reduce(),从前往后

    reduceRight(),从后往前

  1.     var values = [1,2,3,4,5]
  2.  
  3.     var sum = values.reduce(function(prev,cur,index,array){
  4.  
  5.       return prev+cur;
  6.  
  7.     })
  8.  
  9.     console.log(sum) =>15

[JS高程]引用类型(Object、Array)的更多相关文章

  1. JS 深度拷贝 Object Array

    JS 深度拷贝 Object Array function cloneObj(o) { var isArray = o instanceof Array; var isObject = o insta ...

  2. JS高程5.引用类型(3)Array类型-检测数组

    1. instanceof操作符(ECMAScript3) 对于一个网页,或者是一个全局作用域而言,使用instanceof操作符来检测数组就可以得到满意的结果. 语法:if(value instan ...

  3. JS高程5.引用类型(4)Array类型的各类方法

    一.转换方法 所有的对象都具有toLocaleString(),toString()和valueOf()方法.调用toString()方法会返回由数组中的每个值的字符串拼接而成的一个以逗号分隔的字符串 ...

  4. 再谈js对象数据结构底层实现原理-object array map set

    如果有java基础的同学,可以回顾下<再谈Java数据结构—分析底层实现与应用注意事项>:java把内存分两种:一种是栈内存,另一种是堆内存.基本类型(即int,short,long,by ...

  5. js 判断值为Array or Object的方法

    ①obj instanceof Array / Object ②Array.prototype.isPrototypeOf(obj) ③Object.prototype.toString.call(o ...

  6. Js判断参数(String,Array,Object)是否为undefined或者值为空

    在一些前端控件要提交数据到服务器端的数据验证过程中,需要判断提交的数据是否为空.如果是普通表单的字符串数据,只需要在 trim 后判断 length 即可,而这里需要的数据可以是各种不同的类型,通过 ...

  7. 《JS高程》创建对象的7种方式(完整版)

    一.理解对象 ECMA-262定义对象:无序属性的集合,其属性可以包含基本值.对象或者属性. 我们可以把 ECMAScript 的对象想象成 散列表:无非就是一组 名值对,其中值可以是数据或函数. 创 ...

  8. js之引用类型

    一.摘要: <javascript高级程序设计第三版>一书中单独有一章对js的引用类型(Object.Array.RegExp.Function:基本包装类型:Boolean.Number ...

  9. JavaScript--我发现,原来你是这样的JS(引用类型不简单,且听我娓娓道来)

    一.介绍 没错,这是第五篇,到了引用类型,这次要分成两次博文了,太多内容了,这是前篇,篇幅很长也很多代码,主要讲引用类型和常用的引用类型,代码试验过的,老铁没毛病. 坚持看坚持写,不容易不容易,希望大 ...

随机推荐

  1. 修改linux默认ssh 端口

    修改ssh的默认端口 1.编辑ssh配置文件: #vi /etc/ssh/ssh_config                  #vi /etc/ssh/sshd_config            ...

  2. C#如何实现url短地址?C#短网址压缩算法与短网址原理入门

    c# url短地址压缩算法与短网址原理的例子,详细介绍了短网址的映射算法,将长网址md5生成32位签名串,分为4段,每段8个字节,然后生成短网址,具体见文本实例. 短网址映射算法: 将长网址md5生成 ...

  3. jQuery datepicker和jQuery validator 共用时bug

    当我们给一个元素绑定一个datepick后又要对它用validator进行验证时会发现验证并没有成功 因为当点击该元素时候input弹出datepick的UI就已经失去了焦点它验证的仍然是前一个值, ...

  4. MAC安装Securecrt破解

    MAC安装Securecrt破解(复制自:http://www.cnblogs.com/wulaoer/p/5538721.html)   在使用mac的时候有点不太习惯,主要原因是因为在用windo ...

  5. 给RelativeLayout设置背景,无效果bug解决

    drawable文件夹下面 tomyshop_selector.xml文件 <?xml version="1.0" encoding="utf-8"?&g ...

  6. awk学习笔记二:调用shell、文件执行(转)

    awk 'BEGIN {print "Hello"}' 不操作文件直接处理数据流 要调用shell则可以用管道命令 如,打印日期awk 'BEGIN {"date&quo ...

  7. C#下在图片文件本地

    //C#下载图片文件到本地,c#,c#下载,下载图片,下载文件,下载函数// 从图片地址下载图片到本地磁盘// 将二进制文件保存到磁盘 using System;using System.Drawin ...

  8. 利用Paramiko模块远程连接Linux

    使用Paramiko模块模拟SSH远程连接到服务器,并执行命令.(支持Tab键补全) 1.安装相关模块: 1)安装 Crypto 模块: 下载源码包解压 安装: sudo python setup.p ...

  9. Java面试题及答案(基础122道,编码19道)

    JAVA相关基础知识1.面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时 ...

  10. springmvc+maven

    http://blog.csdn.net/zht666/article/details/8673609/