前面提到过,引用类型的值便是对象,在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. trate

    from sklearn.feature_extraction.text import CountVectorizer from sklearn.feature_extraction.text imp ...

  2. 使用DBCC SHOW_STATISTICS展示索引的统计信息

    在开始之前搭建演示环境: USE master GO SET NOCOUNT ON --创建表结构 IF OBJECT_ID(N'ClassA', N'U') IS NOT NULL DROP TAB ...

  3. HDU ACM 1496 Equations

    Equations Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  4. work-10

    0. 问题描述 见老师博客 1.架构简介 经过软件工程的课程,我将学到的很多知识应用到了这次作业中首先,我从架构上来讲解下我的这次作业. 由于各个语言优势不相同,例如在C++课上我们讲到了C++的尴尬 ...

  5. 48种CIFilter

    48种CIFilter     CIAdditionCompositing     //影像合成 CIAffineTransform           //仿射变换 CICheckerboardGe ...

  6. Unity3D之Mecanim动画系统学习笔记(三):Animation View

    动画组件之间的关系 我们先看一张图: 这里我们可以看到,我们在GameObject之上绑定的Animator组件是控制模型进行动画播放的. 而其属性Controller则对应一个Animator Co ...

  7. java虚拟机JVM学习笔记-基础知识

    最近使用开发的过程中出现了一个小问题,顺便记录一下原因和方法--java虚拟机 媒介:JVM是每一位从事Java开发工程师必须翻越的一座大山! JVM(Java Virtual Machine)JRE ...

  8. 删除链表中全部值为k的节点

    1. 问题描写叙述 给定一个单链表,删除当中值为k的全部节点.比如:1→2→6→3→4→5→61 \to 2 \to 6 \to 3 \to 4 \to 5 \to 6,删除当中值为6的节点,返回:1 ...

  9. python的一些总结4

    这篇继续水 但是在水的的基础上 让搭建能正常使用flask 搭建一个站 上篇讲到在 模板view中 输入{{xx }} 可以打印 后台传的值. 这篇讲一下 循环控制 条件控制等 修改后台代码: @ap ...

  10. C++ 析构方法

    1.什么是析构方法? 析构方法与构造方法互补. 2.为什么设计析构方法? 构造方法创建一个对象,对象内部往往还会申请一些资源.设计析构方法的目的是 释放资源,同时销毁自身. 3.析构方法可以认为分为两 ...