javascript高级程序设计第5章,引用类型

时间:2023-02-04 22:08:54

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高级程序设计学习&lpar;四&rpar;之引用类型

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

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

    一.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. Beginning Scala study note&lpar;7&rpar; Trait

    A trait provides code reusability in Scala by encapsulating method and state and then offing possibi ...

  2. 不写1行代码,在Mac上体验ASP&period;NET 5的最简单方法

    昨天微软发布了ASP.NET 5 beta2(详见ASP.NET 5 Beta2 发布),对ASP.NET 5的好奇心又被激发了. 今天下午在Mac OS X上体验了一下ASP.NET 5,而且借助Y ...

  3. &period;&sol;在Linux下是什么意思

    在网上找的答案: . 在这里表示的是当前目录,就像 .. 表示上级目录一样. 这个 / 表示的是目录级别的分隔符,他之前的就是目录名,./aaa/ 表明的就是 . (也就是当前目录)下面的 aaa 目 ...

  4. dancing link 学习资源导航&plus;心得

    dancing link简直是求解数独的神器,NOIP2009最后一题靶形数独,DFS 各种改变搜索顺序 都没法过,最后还是用了卡时过得.用dancing link写,秒杀所有数据,总时间才400ms ...

  5. c语言实现一个链表

    一.基础研究 我们在这里要理解和实现一种最基本的数据结构:链表.首先看看实现的程序代码: List .h: 事实上我们观察list.h发现前面一部分是数据结构的定义和函数的声明,后面一部分是函数的实现 ...

  6. html网页编码问题

    之前碰到过一些html编码乱码问题,都理解的模模糊糊,问了别人解释的也是模模糊糊.近期要做前端这个问题研究了下仅仅须要两句话就能非常清楚的解释了(之前问的那些人是不是自己都没理解非常郁闷.) < ...

  7. Http报头Accept与Content-Type的差别

    1.Accept属于请求头. Content-Type属于实体头. Http报头分为通用报头,请求报头,响应报头和实体报头. 请求方的http报头结构:通用报头|请求报头|实体报头 响应方的http报 ...

  8. http学习笔记(3)

    几乎所有的http通信都是由TCP/IP承载的.http好比一辆汽车,而TCP是一条公路,所有的汽车都要在公路上跑,看看http是如何在tcp这条公路上往返的. 首先简单地看看tcp,TCP连接是通过 ...

  9. angularjs 中的iframe 标签 ng-src 路径

    如果直接写路径到iframe标签里的ng-src中会出现报错: 解决方法: 1.ng里面有个属性是专门用来解决跨域问题的 $sce. 用法: $scope.someUrl = $sce.trustAs ...

  10. C&num; CookieHelper

    using System; using System.Web; using System.Collections.Specialized; namespace Utils { /// <summ ...