–掌握数组的概念、特性、常用方法(重点)
–掌握Object,学会使用对象(重中之重)
–了解其他引用类型对象
一:数组
•在ECMAScript中数组是非常常用的引用类型了。ECMAScript所定义的数组和其他语言中的数组有着很大的区别。那么首先要说的就是数组也是一种对象。
•特点:
–“数组”即一组数据的集合。
–js数组更加类似java的容器。长度可变,元素类型也可以不同!
–数组长度随时可变!随时可以修改!(length属性)
•常用方法:
–push、pop
–shift、unshift
–splice、slice
–concat、join、sort、reverse等
代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title> <script type="text/javascript" charset="utf-8"> /**
* 数组本身也是对象,是引用类型
* js中的数组类似java中的map容器,长度可以改变,元素类型任意
*/
//var arr1 = new Array(); //即使指定长度也没用,长度可随时变 不推荐用 //推荐方式:
//var arr = [1,2,3,true,"aaa",new Date()]; //alert(arr.length);
//arr.length = 5;
//alert(arr); //隐式调用arr.toString方法,并截取前五个元素1,2,3,true,"aaa" /**
* push 和 pop 方法
*/
/*
var arr =[];
//push往数组追加元素,可以多个有返回值为新数组长度
var result = arr.push(1,2,'aa',true);
alert(arr); //1,2,'aa',true
alert(result); //4
//从数组尾部移除一个元素,返回值为移除的元素
var re = arr.pop();
alert(arr); //1,2,'aa'
alert(re); //true
*/
/**
* shift 和 unshift 方法
*/
/*
var arr = ["aa",1,2,true];
var re = arr.shift(); //从头部移除一个元素,返回移除的元素
alert(re); var r1 = arr.unshift(10,false); //从头部插入多个元素,返回新数组的长度
alert(r1);
*/
/**
* splice截取与替换数组元素 操作数组本身、slice方法:不操作数组本身
*/
//splice :第一个参数:起始位置
// 第二个参数:截取的个数
// 第三个参数以后:追加的元素
//var arr = [1,2,3,4,5];
//arr.splice(1,2,3,4,5); //134545
//arr.splice(1); //从第一个截取,就剩下1了。
//arr.splice(1,2); //从第一个开始截,往后2个。1 4 5
//alert(arr); //slice 从位置2截取到位置4:左闭右开 。返回截取的内容
/*
var arr = [1,2,3,4,5];
var r = arr.slice(2,4);
alert(r);
alert(arr); //12345
*/ //操作数组的方 concat 合并。 join 在每个元素之间加入内容 不操作数组本身
/*
var arr1 = [1,2,3,true];
var arr2 = ['aa','bb'];
var r1 = arr1.concat(arr2); //concat
//alert(r1); var r2 = arr1.join('-'); //join
alert(r2);*/ /*
* sort正序排序 需要自己定义排序规则
* reverse 倒叙排序 需要自己定义排序规则
*/
var arr1 = [5,2,1,4,3];
var arr2 = [10,2,4,1,7]; //arr1.sort();
//alert(arr1);//正序排序12345
//arr1.reverse();//倒叙按集合位置排序
//alert(arr1);
//arr2.sort();
//alert(arr2); //1 10 2 4 7 按字符串比较 function compare(value1,value2){
if(value1 < value2){
return -1; //1 调整顺序,倒叙
}else if(value1 > value2){
return 1; //-1
}else{
return 0;
}
}
//传入排序规则 1,2,4,7,10
arr2.sort(compare);
alert(arr2);
</script>
</head>
<body>
</body>
</html>

javascript004引用类型的更多相关文章

  1. C# - 值类型、引用类型&走出误区,容易错误的说法

    1. 值类型与引用类型小总结 1)对于引用类型的表达式(如一个变量),它的值是一个引用,而非对象. 2)引用就像URL,是允许你访问真实信息的一小片数据. 3)对于值类型的表达式,它的值是实际的数据. ...

  2. angular2系列教程(十)两种启动方法、两个路由服务、引用类型和单例模式的妙用

    今天我们要讲的是ng2的路由系统. 例子

  3. 由js apply与call方法想到的js数据类型(原始类型和引用类型)

    原文地址:由js apply与call方法想到的js数据类型(原始类型和引用类型) js的call方法与apply方法的区别在于第二个参数的不同,他们都有2个参数,第一个为对象(即需要用对象a继承b, ...

  4. 5.0 JS中引用类型介绍

    其实,在前面的"js的六大数据类型"文章中稍微说了一下引用类型.前面我们说到js中有六大数据类型(五种基本数据类型 + 一种引用类型).下面的章节中,我们将详细讲解引用类型. 1. ...

  5. C# 引用类型和值类型

    C# 引用类型和值类型 CLR支持两种类型:引用类型和值类型. 1.引用类型 (1)内存必须从托管堆上分配: (2)堆上分配的每个对象都有一些额外成员(包括“类型对象指针”,“同步块索引”),这些成员 ...

  6. JS高程5.引用类型(1)Object类型

    引用类型 在ECMASCript中,引用类型是一种数据结构,将数据和功能组织在一起,引用类型有时候也被称为对象定义,因为它们描述的是一类对象所具有的属性和方法.(注意:尽管ECMAScript从技术上 ...

  7. 通过一个实例重新认识引用类型,值类型,数组,堆栈,ref

    昨天在写代码时候遇到了一个问题,百思不得其解,感觉颠覆了自己对C#基础知识的认知,因为具体的情境涉及公司代码不便放出,我在这里举个例子,先上整个测试所有的代码,然后一一讲解我的思考过程: using ...

  8. Java Native Interface 四--JNI中引用类型

    本文是<The Java Native Interface Programmer's Guide and Specification>读书笔记 JNI支持将类实例和数组类型(如jobjec ...

  9. 一步步学习javascript基础篇(3):Object、Function等引用类型

    我们在<一步步学习javascript基础篇(1):基本概念>中简单的介绍了五种基本数据类型Undefined.Null.Boolean.Number和String.今天我们主要介绍下复杂 ...

随机推荐

  1. Codeforces766A Mahmoud and Longest Uncommon Subsequence 2017-02-21 13:42 46人阅读 评论(0) 收藏

    A. Mahmoud and Longest Uncommon Subsequence time limit per test 2 seconds memory limit per test 256 ...

  2. akka 练手 原来第一次是原封不动的返回传出去的参数

    今天,有介绍akka的文章,就下了个源码的demo练手! 在TimeServer 这个实例中主要就2个文件 server端 static void Main(string[] args) { usin ...

  3. [Erlang36]kerl轻松管理安装各种OTP版本

    kerl只有一个目标:让我们在不同的OTP版本间随意切换.他是一个纯Bash项目.简单实用的工作利器! Readme里面用法已说明得非常清楚了.建议按流程来一次. 1.下载 安装(一个bash脚本,根 ...

  4. django def validate_column和validate

    VIewDemo class RegUserSet(mixins.CreateModelMixin,viewsets.GenericViewSet): serializer_class = RegUs ...

  5. roadflow asp.net工作流自定义表单

    在roadflow表单设计器不能满足很复杂的业务需求的时候,可以采用自定义表单(即表单页面自己做). 自定义表单就是自己写一个页面,包含控制器视图,然后将这个页面挂到流程上进行审批. 自定义表单分为以 ...

  6. JS 浏览器对象

    1.window对象 1.1 window对象 window对象是BOM的核心.window对象指当前的浏览器窗口 所有JavaScript全局对象 .函数以及变量均自动成为window对象的成员 全 ...

  7. pageadmin 网站建设系统如何新建进程池并在站点中使用

    1.打开iis管理界面,右键应用程序池,点击添加应用程序池,添加界面如下图,注意pageadmin cms net版本选择4.0,托管模式建议选择集成模式. 2.添加完毕后,在网站中点击对应站点,点击 ...

  8. Java50道经典习题-程序7 处理字符串

    题目:输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数.分析:利用while语句,条件为输入的字符不为'\n'. import java.util.*; public class Pr ...

  9. 基于JSP的在线考试系统-JavaWeb项目-有源码

    开发工具:Myeclipse/Eclipse + MySQL + Tomcat 系统简介: 网络考试系统主要用于实现高校在线考试,基本功能包括:自动组卷.试卷发布.试卷批阅.试卷成绩统计等.本系统结构 ...

  10. Nginx + uWSGI 配置django---终极版

    好开森,配置了差不多一天的项目,终于成功了,写一篇博客庆祝一下 我们先来了解下nginx与uwsgi的概念,再去配置 磨刀不误砍柴工. nginx 是一个开源的高性能的 HTTP 服务器和反向代理:1 ...