javascript高级程序设计第5章,引用类型
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章,引用类型的更多相关文章
- JavaScript 高级程序设计 第5章引用类型 笔记
第五章 引用类型 一.object类型 1.创建方法: 1.使用new 操作符创建 var person=new object() Person.name=”Nicholasa” Porson.age ...
- 《JavaScript高级程序设计》——第二章在HTML使用JavaScript
这章讲的是JavaScript在HTML中的使用,也就是<script>元素的属性.书中详细讲了async.defer.src和type四个<script>的属性. 下面是对第 ...
- JavaScript高级程序设计学习(四)之引用类型
在javascript中也是有引用类型的,java同样如此. javascript常见也比较常用的引用类型就熟Object和Array. 一个对象和一个数组,这个在前后端分离开发中也用的最多.比如aj ...
- JavaScript高级程序设计学习(四)之引用类型(续)
一.Date类型 其实引用类型和相关的操作方法,远远不止昨天的所说的那些,还有一部分今天继续补充. 在java中日期Date,它所属的包有sql包,也有util包.我个人比较喜欢用util包的.理由, ...
- javascript高级程序设计第四章 变量、作用域和内存问题
变量包含两种,,基本类型和引用类型 基本类型是指一些简单的字段: 引用类型是☞由多个值构成的对象 引用类型的值是保存在内存中的对象,在javascript中是不允许直接访问内存中的位置; 函数的参数 ...
- JavaScript高级程序设计第20章JSON 笔记 (学习笔记)
第二十章 JSON 1.Json 可以表示三种类型的值: 1.简单值: 表示数值:5 表示字符串:“hello wrold”注表示字符串时必须使用双引号 2.对象: {“name”:“mi”,”ag ...
- JavaScript高级程序设计第14章表单脚本 (学习笔记)
第十四章 表单脚本 1.阻止默认表单提交 1.提交表单数据 1.使用type=submit提交按钮 2.使用submit():方法 注意:当用户点击提交按钮时,会触发submit事件,从而在这里我们有 ...
- 《JAVASCRIPT高级程序设计》第一章
在使用调制解调器的时代,频繁的表单验证对客户端来说是一个很大的负担,javascript,作为一种专门进行表单验证的客户端脚本语言诞生了.到今天,javascript早已超越了当初设定的角色.Java ...
- 《JavaScript高级程序设计》笔记:引用类型(五)
Object类型 创建object实例方法有两种.第一种方法使用new操作符后跟object构造函数.如下: var person=new Object(); person.name="Ni ...
随机推荐
- PXE DHCP获取IP与传统DHCP获取IP地址的区别
正常的DHCP获取IP的流程(Discover-Offer-Request-Ack): (Discovery)主机端在LAN中发布MAC地址为FF:FF:FF:FF:FF:FF的广播来寻找DHCP服务 ...
- vert.x学习(七),使用表单获取用户提交的数据
在web开发中,用的最多的就是表单了,用户通过表单提交数据到系统后台,系统又可以通过表单传递的数据做业务分析.那么这章就学习在vert.x中怎么使用表单,获取表单的参数值. 编写一个表单模板代码res ...
- app活动页面上的痛点
app项目上需要做一个小的活动,先看下页面布局 需求是这5个板块逐个展示,展示一块的时候,页面整体向上滚动一定的距离. 刚开始考虑的时候,是准备依赖css3属性的transition实现的,包括顺序延 ...
- java中一个查询业务的流程
因为有用到分页,首先建一个page类 1 public class Page<T> { 2 private int pageSize; //每页显示条数 3 private int cur ...
- 指定的架构无效。错误: CLR 类型到 EDM 类型的映射不明确
在使用WebService开发时,同时使用了EF和linq,查询数据时,使用linq(查询订单)可以正常拉出数据, 但是使用EF(查询用户)却会报以下错误: {"指定的架构无效.错误: \r ...
- Oracle之ORDER BY
------------基本查询--1.查询出的是一张虚拟的结果表-----基本语法---- * 所有列(字段)select * from emps; -----查询指定字段select employ ...
- 关于iOS和android自定义包的名字
自定义包名的使用,android的包名和ios的包名都是你的自定义包名!如下以新浪微博SDK自定义包名示例:(官方没的,自己踩过坑,方便后来人吧) 相关技术文档:http://www.apicloud ...
- PHP无限极分类,多种方法|很简单,这里说的很详细,其它地方说的很不好懂
当你学习php无限极分类的时候,大家都觉得一个字"难"我也觉得很难,所以,现在都还在看,因为工作要用到,所以,就必须得研究研究. 到网上一搜php无限极分类,很多,但好多都是一 ...
- Web页面中5种超酷的Hover效果
hover 效果能给网页增加一些动态效果,并且使得站点更具有活力.原来的做法是使用javascript来实现这些动态效果,但是随着CSS3的引入和现代浏览器 的支持,我们可以用纯粹的CSS代码来实现这 ...
- C++ Sqlite3
/* 回调函数的格式如下: int sqlite_callback( void* pv, //由 sqlite3_exec() 的第四个参数传递而来 int argc, //表的列数 char** a ...