前面提到过,引用类型的值便是对象,在ECMAScript中,引用类型是一种数据结构,用于将数据和功能组织在一起,而对象则是某个特定引用类型的实例。

var a=new Object();

  上面便声明了一个引用类型为Object的实例,并将这个实例存储到变量a中,也就是说这个变量实际是并不是包含了这个实例本身,而是指向这个实例的指针。

  对于Object类型,常用对象字面量表示法来创建实例 既var a={name:"Nick",age:20}这样做的优点是给人封装的感觉。而对象的访问则是使用了点表示法或者方括号表示法。a.name等价于a["name"],注意此处的"name"是以字符串表示的。

  对于Array类型,则可以使用数组字面量表示法。

    对于Array类型,可以使用length来改变数组的长度。(从数组的末尾添加或者移除项)

    检测数组的方法是Array.isArray(value)方法

    转换方法:toString()转换成以“,”分割各项的一个字符串。valueOf(),返回的依旧是数组。toLocaleString()可以用下例实现。

    

var p1={
toString:function(){return "guo";},
toLocaleString:function(){return "yuzhe";} }
var p2={
toString:function(){return "song";},
toLocaleString:function(){return "hap";} }
var p=[p1,p2];
alert(p); //guo,song
alert(p.toLocaleString()); //yuzhe,hap

可见 alert在输出前先调用了toString()方法,此外还有join()方法,用于以指定的符号返回成字符串 ,其默认的(不设置参数)为“,”。

    栈方法:push()在末尾添加项,返回数组长度。pop()在末尾删除项,返回删除项。

    队列方法:shift()溢出数组第一项,返回该项。unshift()在首段添加项,返回数组长度。

    重排序方法(返回值为数组):

        reverse()反转顺序。a[length-1]=a[0]

        sort()升序排序法 默认的sort()是以ASCII排序的,而非我们认为的数字大小,所以比较大小需要这样使用

function compare(no1,no2){
if(no1<no2){
return -1;}
else if(no1>no2){
return 1;}
else{
return 0;}
}
var a=[1,2,3,4,6,5];
a.sort(compare);
alert(a)

若想产生降序效果,只需反转if语句。

    操作方法:

        concat()创建了一个副本,对原数组无影响,作用是添加接受的参数到数组的末尾。

        slice()创建一个副本,接受1或者2个参数(返回项的起始和结束位置,不包含结束位置),在只有一个参数的情况下,返回从指定位置到结尾所有项。如果参数为负数,则结果为length+arguments,若结束位置小于起始位置,则返回空数组。

        splice():1.删除方法--指定两个参数,删除的第一项的位置和删除的项数。

            2.插入方法--指定三个参数,起始位置,0(要删除的个数),要插入的项。

            3.替换方法--指定三个参数,起始位置,删除的个数,要插入的项

            插入/替换的位置是起始位置。

    位置方法:

        indexOf()返回要查找的项的数组下表,没有则返回-1.参数:要查找的项和(可选的)查找起点位置的索引(下标)。

        lastIndexOf()是indexOf()的逆序。

    迭代方法:

        2个参数:要运行的函数和(可选的)的作用域,传入这些方法中的函数需要有三个参数(item(数组项的值),index(该项的位置),array(数组对象本身)).

        every()对数组中的每一项运行给定函数,每一项都返回ture 则返回true

        filter()返回会返回true的项组成的数组

        forEach()对每一项运行给定函数,无返回值

        map()返回每次函数执行结果组成的数组

        some()若有一项为true,则返回true

<script>
var a=[1,2,3,4];
var b=a.every(function(item,index,array){
return item>2;
});
alert(b); //false
</script>

    归并方法:

        reduce()从数字第一项开始遍历,reduceRight()从数组最后一项开始遍历

        使用reduce()来求数组中的所有和

        

<script>
var a=[1,2,3,4];
var b=a.reduce(function(prve,cur,index,array){
return prve+cur;
});
alert(b); //10

第一次执行时,prev为1,cur为2 ,第二次执行时,prev为3,cur为3。

 

    

javaScript入门--引用类型的更多相关文章

  1. JavaScript笔记——引用类型之Object类型和Function类型

    <JavaScript高级程序设计>中介绍的几种JavaScript的引用类型,本文只记了Object跟Function类型 Object类型 创建对象 var person = new ...

  2. JavaScript入门篇 编程练习

    编程挑战 一.定义"改变颜色"的函数 提示: obj.style.color obj.style.backgroundColor 二.定义"改变宽高"的函数 提 ...

  3. JavaScript入门

    本篇内容是学习慕课网相关课程后,总结出可能未来会忘记的内容 (一)JavaScript入门操作 1.js代码插入位置,以及执行顺序 <head> <script type=" ...

  4. 慕课网JavaScript入门篇课程笔记

    1.js注释很重要 单行注释,在注释内容前加符号 “//”. <script type="text/javascript"> document.write(" ...

  5. JavaScript入门基础

    JavaScript基本语法 1.运算符 运算符就是完成操作的一系列符号,它有七类: 赋值运算符(=,+=,-=,*=,/=,%=,<<=,>>=,|=,&=).算术运 ...

  6. JavaScript入门介绍(二)

    JavaScript入门介绍 [函数] 函数function 是Javascript的基础模块单元,用于代码的复用.信息影藏和组合调用. function a(){} 函数对象Function Lit ...

  7. JavaScript入门介绍(一)

    JavaScript入门介绍 [经常使用的调试工具][w3school.com.cn在线编辑] [Chrome浏览器 开发调试工具]按F121.代码后台输出调试:console.log("t ...

  8. 开心菜鸟系列----函数作用域(javascript入门篇)

      1 <!DOCTYPE html>   2 <html>   3 <script src="./jquery-1.7.2.js"></ ...

  9. 开心菜鸟系列----变量的解读(javascript入门篇)

                       console.info(         console.info(window['weiwu'])          console.info(window. ...

随机推荐

  1. redis的hashes类型

    redis hash 是一个string类型的field和value 的映射表.它的添加.删除操作都是O(1) . hash特别适合用于存储对象.相较于将对象的每个字段存成单个string类型 . 将 ...

  2. dedecms

    http://www.duodede.com/free/  [free templte] http://www.xiuzhanwang.net/d

  3. libpcap/wwinpcap

    winpcap(windows packet capture)是windows平台下一个免费,公共的网络访问系统.开发winpcap这个项目的目的在于为win32应用程序提供访问网络底层的能力.win ...

  4. mvc annotation-driven作用

    会自动注册DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter两个bean,是spring MVC为Controller分发请求 ...

  5. poj 3501 Escape from Enemy Territory 二分+bfs

    水题,不解释. #include<stdio.h> #include<math.h> #include<cstring> #include<algorithm ...

  6. list删除操作 java.util.ConcurrentModificationException

    首先大家先看一段代码: public static void main(String[] args) { List<String> listStr = new ArrayList<S ...

  7. Volley使用指南第三回(来自developer.android)

    继第二篇之后,再来Volley使用的教程的第三篇,有些翻译我是根据自己的理解,可能有错误的地方,还请多多包涵. 标准请求 这一回课将会告诉你Volley能够完成的3种请求类型 1.StringReqe ...

  8. Sysprep命令详解

    本主题描述了 Windows(R) 8 版本的系统准备 (Sysprep) 工具的命令行语法. 如果你打算创建安装映像以部署到不同的计算机上,则必须运行带有 /generalize 选项的 Syspr ...

  9. linux自己带的apache重新启动

    如果是linux自己带的apache的话就使用命令 service httpd start 启动 service httpd stop 关闭 service httpd restart 重新启动 如果 ...

  10. Codeforces Beta Round #85 (Div. 1 Only) A. Petya and Inequiations 贪心

    A. Petya and Inequiations Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest ...