object类型;

创建object实列的方式有两种,一种是new()方法,一种是对象字面量表示法;

  第一种法方:  var obj = new object();

          obj.name = 'name';

          obj.age = '22';

  第二种方法:  var obj ={      

          name:'name',

          age:'22'

        }

另外使用对象字面量的另一种写法 与new的方法相同

    var obj = {}

      obj.name='name';

      obl.age='22'

访问对象属性时一般是使用点访问法,在javascript中可以使用[]来进行属性的访问,

如   alert(obj['name']);

Array类型:

    Array类型的创建 也可以使用new来创建;

如  var arr = new Array();

也可以使用

  var arr = [];

  var arr =  new Array(20) // 创建一个长度为20的数组;

关于Array的访问;

  arrp[0];通过索引值来进行访问;

如果索引值大于数组长度进行赋值,则会给数组自动添加到当前索引的长度;

array的length属性不只是只读属性,通过这个属性可以将数组的末位给移除掉;

例如:var arr = ['ss','s','ww'];

    arr.length = 2;

    alert(arr[2])   //undefined

检测数组。。

arr.isArray();//ECMAscript5新增方法,在IE9+支持;

if( arr instanceof Array){

  这个方法有一个弊端 如果一个页面包含多个框架 就存在两个不同的全局环境,而存在两个不同版本的Arry ,当在一个框架中向另一框架传入一个数组,那么传入的数组在第二个框架中于原生的数组存在不同的构造函数;

}

转换方法:

  所有的对象都包含 toString();valueOf();toLocaleString()方法;

  join()方法用于将数组中的所有元素放入一个字符串中;

栈方法:

  在数组中的元素是先进后出;

ECMAscript为数组添加了push(),和pop()方法;

push()可以接受任一数量的参数并向数组的最后一位添加元素并返回添加元素后的新数组;

pop()方法是删除数组的最后一位并返回删除的元素;

shift()方法是移除数组的第一项并返回移除的项,和pop()方法相反

unshift()方法,和push方法相同,不过是在在数组的第一位开始插入新的元素,并返回;

数组排序方法;

sort()和reverse()两个方法

reverse()方法是讲数组进行反序排列

例如 var arr = [1,2,3,4,5];

    arr.reverse() // 5,4,3,2,1;

sort()方法;

sort()方法进行数组排序比较的是字符串,可以接收一个比较函数做为参数;

  例如:var arr = [1,2,5,10,15]

     function sort1(value1,value2){

        if(value1>value2){

            return 1

          }

        else if(value1<value2){

          return -1

        }

        else{

          return 0

        }

      }

arr.sort(sort1);

对于比较值是返回数据类型或者其valueOf返回的是数据类型的值可以使用-法进行升序或者降序排列;

function sort1(value1,value2){

  return value1-value2

}

通过一个减法来返回一个大于零小于零或者等于零的数来进行判断排序;

sort()和severse()方法都是返回重新排序过后的数组;

slice()可以接受一到两个参数,返回的是当前数组的起始位置,如果只有一个参数,则返回从改参数制定位置到数组的结束位置。两个参数则返回当前参数的起始位置。

slice()方法不回影响原来的数组,当alice()方法的参数是负数的时候则用当前数组的长度加上参数来确定位置,如果数组长度<所传的参数则返回空;

  例如: var arr.length=5;

      arr.slice(-2,-1)则返回arr.slice(3,4);

    aplice()方法;

这个方法可以用来删除、插入、替换

aplice()方法返回的是当前删除的元素,如果没有删除元素则返回一个空数组

删除:var arr.splice(0,2);  第一个参数为要删除元素的位置,第二个参数为要删除多少项;

  例如:var arr=['ss','s','aa','www','ee'];

      arr.splice(0,2) // arr=['aa','www','ee'];

      arr.splice(1,2) // arr=['ss','www','ee'];

插入:var arr=['ss','s','aa','www','ee'];

    arr.splice(0,0,'rr','t','yy') //a=['rr','t','yy','ss','s','aa','www','ee']

替换:var arr=['ss','s','aa','www','ee'];

    arr.splice(0,1,'w') //a=['w','s','aa','www','ee']

位置方法:indexOf()和lastIndexOf();这两个方法都接受两个参数 第一个参数是需要查找的项,第二个参数(可选)是需要查找的起点位置;如果未能找到则返回-1

var arr=[1,2,3,4,5,4,3,2,1];

  arr.indexOf(4) // 3;

  arr.lastIndexOf(4) // 5;

 arr.indexOf(4,4) //5;

  arr.lastIndexOf(4,4)//3;

迭代方法。ECMAscript5给数组定义了5种迭代方法;没中方法可以接收两个参数,第一是执行的函数第二是执行的作用域(可选)会影响this的指向;每个执行的函数可以接收3个参数,第一个参数是当前的元素,第二个参数是元素当前的位置,第三个参数是当前的数组;

every()方法;当所有的条件都成立是返回turn否则返回false;

  var a = [1,2,3,4,5,4];

  var b = a.every(function(q,w,a){

    return q>2

  })

  alert(b) //false

 some()方法;类似于vevry()方法,数组种只要有一个返回turn则返回turn;

var a= [1,2,3,4,5];

var b = a.some(function(q,w,a){

  return q>5

})

alert(b) //turn

filter()这个方法返回的是函数返回为turn的项组成的数组;

var a = [1,2,3,4,5,6];

  var b=a.filter(function(q,w,a){

    return q>3

  });

  alert(b)//4,5,6

forEach()方法没有返回值;类似于for循环;

map()返回的是函数执行的结果;

var a=[1,2,3,4,5];

var b = a.map(function(q,w,a){

  return q*2

})

alert(b)//2,4,6,8,10;

未完。。。

javascript高级程序设计第5章,引用类型的更多相关文章

  1. JavaScript 高级程序设计 第5章引用类型 笔记

    第五章 引用类型 一.object类型 1.创建方法: 1.使用new 操作符创建 var person=new object() Person.name=”Nicholasa” Porson.age ...

  2. 《JavaScript高级程序设计》——第二章在HTML使用JavaScript

    这章讲的是JavaScript在HTML中的使用,也就是<script>元素的属性.书中详细讲了async.defer.src和type四个<script>的属性. 下面是对第 ...

  3. JavaScript高级程序设计学习(四)之引用类型

    在javascript中也是有引用类型的,java同样如此. javascript常见也比较常用的引用类型就熟Object和Array. 一个对象和一个数组,这个在前后端分离开发中也用的最多.比如aj ...

  4. JavaScript高级程序设计学习(四)之引用类型(续)

    一.Date类型 其实引用类型和相关的操作方法,远远不止昨天的所说的那些,还有一部分今天继续补充. 在java中日期Date,它所属的包有sql包,也有util包.我个人比较喜欢用util包的.理由, ...

  5. javascript高级程序设计第四章 变量、作用域和内存问题

    变量包含两种,,基本类型和引用类型 基本类型是指一些简单的字段: 引用类型是☞由多个值构成的对象  引用类型的值是保存在内存中的对象,在javascript中是不允许直接访问内存中的位置; 函数的参数 ...

  6. JavaScript高级程序设计第20章JSON 笔记 (学习笔记)

    第二十章 JSON 1.Json 可以表示三种类型的值: 1.简单值: 表示数值:5  表示字符串:“hello wrold”注表示字符串时必须使用双引号 2.对象: {“name”:“mi”,”ag ...

  7. JavaScript高级程序设计第14章表单脚本 (学习笔记)

    第十四章 表单脚本 1.阻止默认表单提交 1.提交表单数据 1.使用type=submit提交按钮 2.使用submit():方法 注意:当用户点击提交按钮时,会触发submit事件,从而在这里我们有 ...

  8. 《JAVASCRIPT高级程序设计》第一章

    在使用调制解调器的时代,频繁的表单验证对客户端来说是一个很大的负担,javascript,作为一种专门进行表单验证的客户端脚本语言诞生了.到今天,javascript早已超越了当初设定的角色.Java ...

  9. 《JavaScript高级程序设计》笔记:引用类型(五)

    Object类型 创建object实例方法有两种.第一种方法使用new操作符后跟object构造函数.如下: var person=new Object(); person.name="Ni ...

随机推荐

  1. TabSiPlus发布1749版本

    拖了几天,终于可以发布了,下载地址如下: http://www.winmsg.com/download/TabSiPlus_0_99b2_1749.rar 这个包里没有附带VC的运行库,考虑到大多数人 ...

  2. js 时间函数封装

    html代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...

  3. ElasticSearch返回不同的type的序列化

    总体思路是: 利用json序列化的别名方法,反序列化到不同的字段上: 因为别名方法不支持多个别名,所以不得不根据不同的type,定义了多套适配内容. 最终在属性上进行选择. 本示例ElasticSea ...

  4. SpringMVC的几种返回方式

    package com.boventech.learning.controller; import java.util.HashMap; import java.util.Map; import or ...

  5. Java 的静态代理 动态代理(JDK和cglib)

    转载:http://www.cnblogs.com/jqyp/archive/2010/08/20/1805041.html JAVA的动态代理 代理模式 代理模式是常用的java设计模式,他的特征是 ...

  6. java字典序排序

    import java.util.Comparator; import java.util.ArrayList; import java.util.Collections; public class ...

  7. spark 简介

    spark 是基于内存计算的 大数据分布式计算框架,spark基于内存计算,提高了在大数据环境下处理的实时性,同时保证了高容错性和高可伸缩性,允许用户将spark部署在大量廉价的硬件上,形成集群. 1 ...

  8. __attribute__

    转来的: http://www.cnblogs.com/astwish/p/3460618.html __attribute__ 你知多少? GNU C 的一大特色就是__attribute__ 机制 ...

  9. iOS,视图相关

    1.移除视图的所以子视图 2.自定义视图(UIView) 3.处理悬浮窗口(类似微信视频),等比缩放 4.自定义前面视图(可以手写字) 5.图片拉伸的几种方式,计算文本占用空间大小 6.UILable ...

  10. lua table integer index 特性

    table.maxn (table) Returns the largest positive numerical index of the given table, or zero if the t ...