5. javacript高级程序设计-引用类型
1. 引用类型
1.1 Object类型
创建Object类型有两种方式:
- 使用new操作符后跟Object构造函数
var person =new Object();
- 字符量表示法
var person = {
name:’chuck’
}
1.2 Array类型
1.2.1 创建方式
- 使用Array构造函数
var colors = new Array();
- 字符量表示法
var colors = [];
var names= [‘a’,’b’,’c’];
1.2.2 检测数组
使用 Array.isArray(value)来检测数组,true表示数组
1.2.3 转换方法
toLocaleString():分别调用每一项的toLocaleString()方法,并以逗号分隔
toString():分别调用每一项的toString()方法,并以逗号分隔
valueOf():返回数组本身
1.2.4 栈方法
栈是一种后进先出的数据结构,最新添加的项被移除
使用push()方法添加最后一项
使用pop()方法返回并移除最后一项
1.2.5 队列方法
队列是一种先进先出的数据结构,最先添加的项被移除
使用push()方法添加最后一项
使用shift()方法返回并移除第一项
同事还存在unshift()方法,在数组第一项添加数据
1.2.6 重排序方法
- reverse()方法
反转数组的顺序
- sort()方法
对数组进行排序,默认按照字符串进行排序,同事接受一个方法作为排序比较方法
1.2.7 操作方法
(1). concat方法
连接数组的方法,多个数据类型组合在一起返回
(2). splice方法
splice(index,removeCount,value1,value2,…)
index:表示要操作的索引
removeCount:表示index索引开始删除的个数,0表示不删除
value1,2…:表示删除后插入的值
1.2.8 位置方法
indexOf:方法从头开始查询
lastIndexOf:方法从最后一位开始查找
1.2.9 迭代方法
l every:对数组中的每一项运行给定函数,每一项均放回true则返回true
l filter:对数组中的每一项运行给定函数,返回该函数返回true时的项组成数组
l forEach:对数组中每一项运行给定函数,该函数没有返回值
l map:对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组
l some:对数组中的每一项运行给定函数,如果该函数对任一项返回true,则返回true
|
var nums = [1,2,3,4,5]; nums.every(function (item,index,array) { // body... }); nums.filter(function (item,index,array) { // body... }); nums.forEach(function (item,index,array) { // body... }); nums.map(function (item,index,array) { // body... }); nums.some(function (item,index,array) { // body... }); |
1.2.10 并归方法
reduce和reduceRight方法,迭代每一项最后方法迭代后的结果,reduce从第一项开始,reduceRight从最后一项开始
|
var nums = [1,2,3,4,5]; nums.reduce(function(prex,cur,index,array){ //body ... }) |
1.3 Date类型
使用Date构造函数进行创建
var date = new Date();
使用Date.parse()进行格式化
1.4 RegExp类型
1.4.1 创建
var expression = /pattern/flags
flags支持下列3个表示:
g:全局模式
i:不区分大小写
m:多行模式
1.4.2 使用
l exec():返回一个数组,并包含额外的两个属性,index和input
index表示匹配项在字符串的位置,input表示要逼匹配的字符串,数组返回字符串中所有匹配的字符串的集合,在设置全局模式的情况下,每次匹配字符串都会在字符串中查询新匹配项,没有设置的全局模式每次匹配都返回同一匹配项
l test():接受一个字符串参数,表示十分符合匹配模式
1.5 Function类型
1.5.1 没有重载
所有的函数均是Function类型的实例,“函数是对象,函数名是指针”
1.5.2 函数内部属性
l arguments
arguments主要用途是保存函数参数,还有一个callee的属性,该属性是一个指针,指向拥有这个arguments对象的函数
l this
指向当前函数的执行环境
l caller
表示调用这个函数的对象的指针
1.5.3 函数属性和方法
每个函数都存在两个属性length和prototype
l length:表示函数参数的个数
l prototype:保存所有实例方法的真正所在
l apply:函数接受两个参数,一个是运行函数的作用域,另一个是参数数组
l call:作用相同,只是接受参数不同,第一个参数没有变化,变化的是其余参数必须直接传递给函数
1.6 基本包装类型
Boolean,Number和String对象,尽量不要使用包装对象
1.7 单体内置类型
1.7.1 Global对象
l URI编码方法
encodeURI:不会对本身属于URI的特殊字符进行编码,例如冒号,正斜杠,问号和井字号进行编码
encodeURIComponent:对所有的字符串任何非标准字符编码
decodeURI:对encodeURI解码
decodeURIComponent:对encodeURIComponent解码
l eval方法
执行一段js代码
l Global对象属性
包含一些属性,undefined,NaN等属性信息
l window对象
全局变量中的对象作物window对象的一部分实现的
1.7.2 Math对象
l 属性
Math.E 自然对数的底
Math.PI 圆周率等
l min,max
min求最小值
max求最大值
l 舍入方法
Math.ceil:向上舍入为最接近的整数
Math.floor:向下舍入为最接近的整数
Math.round:标准四舍五入
l random方法
返回大于等于0并小于1的随机数
1-10之间的数:var num = Math.floor(Math.random()*10+1)
l 其他方法
简单或者复杂的计算相关的方法
Math.abs()求绝对值等方法
5. javacript高级程序设计-引用类型的更多相关文章
- Javascript高级程序设计——引用类型
对象在javascript中被称为引用类型的值,而且有一些内置的引用类型可以创建特定的对象: 引用类型与传统面向对象中的程序设计的类相似,但实现不同: Object是一个基础类型,其他所有类型都从Ob ...
- 6. javacript高级程序设计-面向对象设计
1. 面向对象设计 1.1 理解对象 1.1.1 属性类型 (1). 数据属性:相当于对象的字段,包含一个数据值的位置,在这个位置可以读取和写入值.数据属性中有4个描述其行为的特性: l [[Conf ...
- 4. javacript高级程序设计-变量、作用域和内存问题
1.1 基本类型和引用类型的值 变量包含两种不同数据类型的值:基本类型值和引用类型值.基本类型值指的是简单的数据段,引用类型值可以由多个值构成的对象 1.1.1 动态的属性 针对引用对象的值,可以为其 ...
- 25. javacript高级程序设计-新兴的API
1. 新兴的API requestAnimationFrame():是一个着眼于优化js动画的api,能够在动画运行期间发出信号.通过这种机制,浏览器就能够自动优化屏幕重绘操作 Page Visibi ...
- 24. javacript高级程序设计-最佳实践
1. 最佳实践 l 来自其他语言的代码约定可以用于决定何时进行注释,以及如何进行缩进,不过JavaScript需要针对其松散类型的性质创造一些特殊的约定 l javascript应该定义行为,html ...
- 23. javacript高级程序设计-数据存储
1. 数据存储 1.1 cookie HTTP Cookie, cookie,最初用来在客户端存储回话信息. (1). 限制,不同浏览器对特定域名下的cookie 的个数有限制,每个域名下最好不要操过 ...
- 22. javacript高级程序设计-高级技巧
1. 高级技巧 1.1 函数 l 可以使用惰性载入函数,将任何分支推迟到第一个调用函数的时候 l 函数绑定可以让你创建始终在指定环境中运行的函数,同时函数柯里化可以让你创建已经填写了某些参数的函数 l ...
- 21. javacript高级程序设计-Ajax与Comet
1. Ajax与Comet 1.1 XMLHttpRequest对象 IE5是第一款引入XHR对象的浏览器,IE5中是通过MSXML库中的一个ActiveX对象实现的.因此在IE中可能存在MSXML2 ...
- 20. javacript高级程序设计-JSON
1. JSON JSON是一种数据格式,存在以下三种类型的值: l 简单值:使用与JavaScript相同的语法,可以在JSON中表示字符串.数值.布尔值和null,不支持 undefined,例如: ...
随机推荐
- asp.net webform中使用async,await实现异步操作
摘要 最近想着将项目中的部分耗时的操作,进行异步化.就自己弄个demo进行学习.只需下面几个步骤就可以将aspx页面中注册异步操作. demo 比如我们需要抓取某个url的内容,这个时候我们可能会有下 ...
- Linux 运行 apt-get install 就出现jdk installer 错误的解决方法
解决办法如下: sudo rm /var/lib/dpkg/info/oracle-java7-installer* sudo apt-get purge oracle-java7-installer ...
- Python 爬虫笔记、多线程、xml解析、基础笔记(不定时更新)
1 Python学习网址:http://www.runoob.com/python/python-multithreading.html
- Linux运维初级教程(二)账户与安全
知识点 用户ID为UID,组ID为GID,UID=0表示超级管理员即root. 一个用户只可以加入一个基本组,但是可以同时加入多个附加组. 创建用户时,系统默认会自动创建同名的组,并设置用户加入该基本 ...
- ansible的使用技巧
#查看ansible的帮助 $ ansible -h #ansible 指定不通的模块执行 $ ansible -i /etc/ansible/hosts docker -u root -m c ...
- 关于Tchar
因为C++支持两种字符串,即常规的ANSI编码(使用""包裹)和Unicode编码(使用L""包裹),这样对应的就有了两套字符串处理函数,比如:strlen和w ...
- UML浅析
UML概述 UML (Unified Modeling Language)为面向对象软件设计提供统一的.标准的.可视化的建模语言.适用于描述以用例为驱动,以体系结构为中心的软件设计的全过程. UML模 ...
- ggplo2学习笔记——基本图形类型
1.散点图:又称散点分布图,是以一个变量为恨坐标,另一个变量为纵坐标,利用散点(坐标点)的分布形态反映变量统计关系的一种图形.可以用来确认两个变量之间的关系.绘制自由曲线.矩阵关联分析等. 2.条形图 ...
- PHP多态的理解
多态性的一般定义为:同一个操作作用于不同的类的实例,将产生不同的执行结果.也即不同类的对象收到相同的消息时,将得到不同的结果.在实际的应用开发中,采用面向对象中的多态主要在于可以将不同的子类对象都当作 ...
- 2015多校.MZL's endless loop(欧拉回路的机智应用 || 构造)
MZL's endless loop Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Oth ...