1.使用对象字面量定义对象
var person={};
使用这种方式创建对象时,实际上不会调用Object构造函数。
开发人员更喜欢对象字面量的语法。
 
2.有时候需要传递大量可选参数的情形时,一般来讲使用对象字面量来封装多个可选参数。
 
3.对象属性的点表示法与方括号表示法的区别
(1)功能上:两者没区别
 
(2)但是方括号的有点是可以通过变量来访问属性
例如:
    var person={
    name:"Nic"
}
点表示法:person.name
方括号表示法:var prop=“name”;
                        person[prop]
 
(3)还有一个优点是:
如果属性名中包含会导致语法错误的字符或者关键字,保留字时候,使用方括号不会错
例如:person["first name"]="OK";
 
(4)通常,建议使用点表示法
 
 
4.创建数组的问题
var colors=[1,2,]    //不要这样。这样会创建一个包含2个或3个项的数组
var opy=[,,,,,] //不要这样。这样会创建一个包含5个或6个项的数组
这是因为IE8及之前的版本在实现数组字面量方面有bug
 
使用字面量创建数组时,不会调用Array构造函数。
 
5.如果设置某个值的索引超过了数组现有项数。
如:var color=[1,2,3]
color[3]时,数组会自动增加到该索引值加1的长度
这时,color[3]的值就是undefined
 
6.数组的length不只是只读的。通过设置length该属性,可以不断向数组末尾添加新项。
 
7.数组转换成字符串 toString() join()
array.toString()    //返回以逗号分隔的字符串
array.valueOf() //返回的还是数组
array.join(",") //也可以
8.数组的栈方法 push() pop() 
栈是一种数据结构,也就是最新添加的项最早被移除(后进先出)。而栈中项的插入和移除,只发生在一个位置--栈的顶部。
ECMAScript提供了push()与pop()方法来实现这种栈。
push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
pop() 方法用于删除并返回数组的最后一个元素。
例子:
var arr=[];
var count=arr.push('a','b'); //count=2
arr.push('c');
var item=arr.pop(); //移除最后一项 c item=c 并且改变数组长度
9.队列方法 shift() unshift() 
队列数据的访问规则是先进先出
ECMAScript提供了shift()来实现。
shift() 方法用于把数组的第一个元素从其中删除,并返回第一个元素的值。
unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。
 
10.重排序方法 sort() reverse()
ECMAScript提供了sort()与reverse()来实现。
sort()会调用每个数组项的tostring()方法,比较得到的字符串来排序。
 
 
11.数组的拼接 concat()

concat() 方法用于连接两个或多个数组。

该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

12.slice() 方法可从已有的数组中返回选定的元素。
 
13.位置方法:indexOf()与lastIndexOf()
 
14.迭代方法
ECMAScript5定义了下列5种方法,该5种方法都接收三个参数:数组项的值,该项在数组中的位置,数组对象本身                                        
every(),filter(),forEach(),map(),some()
例子:
var num=[1,2,3,4];

var res=num.every(function(item,index,array){
return (item>2)
}) //false 必须每一项都大于2,才返回true var res=num.some(function(item,index,array){
return (item>2)
}) //true 只要有一个大于2,就返回true var res=num.filter(function(item,index,array){
return (item>2)
}) //[3,4]
var res=num.forEach(function(item,index,array){
return (item>2)
}) //[1,4,9,16]
 

JavaScript高级程序设计--对象,数组(栈方法,队列方法,重排序方法,迭代方法)的更多相关文章

  1. JavaScript高级程序设计--对象创建的三种方法

    创建对象的三种方法: 1.工厂模式 工厂模式是软件工程领域广为人知的设计模式,这种模式抽象了创建具体对象的过程.下面是使用工厂函数创建对象的的一个例子. 2.构造函数: 从上面的例子中,我们看到构造函 ...

  2. 《Javascript高级程序设计》读书笔记之对象创建

    <javascript高级程序设计>读过有两遍了,有些重要内容总是会忘记,写一下读书笔记备忘 创建对象 工厂模式 工厂模式优点:有了封装的概念,解决了创建多个相似对象的问题 缺点:没有解决 ...

  3. 《JavaScript高级程序设计》学习笔记(4)——引用类型

    欢迎关注本人的微信公众号"前端小填填",专注前端技术的基础和项目开发的学习. 本节内容对应<JavaScript高级程序设计>的第五章内容. 在ECMAScript中, ...

  4. JavaScript高级程序设计(第三版)学习,第一次总结

    Array类型 var arr = []; arr.length; //返回数组元素个数 改变length可以动态改变数组大小 检测数组 instanceof可以检测某个对象是否是数组,限制:只能是一 ...

  5. 读书时间《JavaScript高级程序设计》一:基础篇

    第一次看了<JavaScript高级程序设计>第二版,那时见到手上的书,第一感觉真是好厚的一本书啊.现在再次回顾一下,看的是<JavaScript高级程序设计>第三版,并记录一 ...

  6. JavaScript高级程序设计---学习笔记(一)

    今天,2017.3.17开始利用课余时间仔细学习<JavaScript高级程序设计>,将需要掌握的知识点记录下来,争取把书里的所有代码敲一遍并掌握. 1.标识符命名最好是第一个字母小写,剩 ...

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

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

  8. 《Javascript高级程序设计》阅读记录(三):第五章 上

    这个系列以往文字地址: <Javascript高级程序设计>阅读记录(一):第二.三章 <Javascript高级程序设计>阅读记录(二):第四章 这个系列,我会把阅读< ...

  9. javascript高级程序设计学习笔记

    javascript高级程序设计,当枕头书已经好久了~zz  现在觉得自己在js的开发上遇到了一些瓶颈,归根究底还是基础太薄弱,所以重新刷一遍js高程希望有更新的认识. 一.javascript简介 ...

随机推荐

  1. 深入理解DIP、IoC、DI以及IoC容器

    摘要 面向对象设计(OOD)有助于我们开发出高性能.易扩展以及易复用的程序.其中,OOD有一个重要的思想那就是依赖倒置原则(DIP),并由此引申出IoC.DI以及Ioc容器等概念.通过本文我们将一起学 ...

  2. 【翻译】MongoDB指南/CRUD操作(二)

    [原文地址]https://docs.mongodb.com/manual/ MongoDB CRUD操作(二) 主要内容: 更新文档,删除文档,批量写操作,SQL与MongoDB映射图,读隔离(读关 ...

  3. ASP.NET MVC5+EF6+EasyUI 后台管理系统(73)-微信公众平台开发-消息管理

    系列目录 前言 回顾上一节,我们熟悉的了解了消息的请求和响应,这一节我们来建立数据库的表,表的设计蛮复杂 你也可以按自己所分析的情形结构来建表 必须非常熟悉表的结果才能运用这张表,这表表的情形涵盖比较 ...

  4. 从零开始编写自己的C#框架(26)——小结

    一直想写个总结,不过实在太忙了,所以一直拖啊拖啊,拖到现在,不过也好,有了这段时间的沉淀,发现自己又有了小小的进步.哈哈...... 原想框架开发的相关开发步骤.文档.代码.功能.部署等都简单的讲过了 ...

  5. 使用ubuntu作为web开发环境的一些感受

    从ms-dos,win95,win98,winMe,winXp,vista,win7,win10我都有使用的经历,我使用时间最长的应属winxp,其次是win7,说实话,我觉得这两个系统是微软做的最好 ...

  6. C#中Length和Count的区别(个人观点)

    这篇文章将会很短...短到比你的JJ还短,当然开玩笑了.网上有说过Length和count的区别,都是很含糊的,我没有发现有 文章说得比较透彻的,所以,虽然这篇文章很短,我还是希望能留在首页,听听大家 ...

  7. select、poll、epoll之间的区别总结

    select.poll.epoll之间的区别总结 05/05. 2014 select,poll,epoll都是IO多路复用的机制.I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪 ...

  8. ASP.NET中画图形验证码

    context.Response.ContentType = "image/jpeg"; //生成随机的中文验证码 string yzm = "人口手大小多少上中下男女天 ...

  9. linux服务器开发一 基础

    注:本文仅限交流使用,请务用于商业用途,否则后果自负! Linux 1.Linux介绍 Linux是类Unix计算机操作系统的统称. Linux操作系统的内核的名字也是“Linux”. Linux这个 ...

  10. Java 程序优化 (读书笔记)

    --From : JAVA程序性能优化 (葛一鸣,清华大学出版社,2012/10第一版) 1. java性能调优概述 1.1 性能概述 程序性能: 执行速度,内存分配,启动时间, 负载承受能力. 性能 ...