位置: 编程技术 - 正文

《JavaScript高级编程》学习笔记之object和array引用类型(《JavaScript高级程序设计》pdf链接)

编辑:rootadmin

推荐整理分享《JavaScript高级编程》学习笔记之object和array引用类型(《JavaScript高级程序设计》pdf链接),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:javascript高级程序设计pdf下载,《JavaScript高级程序设计》pdf链接,《JavaScript高级程序设计》pdf链接,javascript高级语言,《JavaScript高级程序设计》,javascript高级程序设计第六版,《JavaScript高级程序设计》,javascript高级程序设计第六版,内容如对您有帮助,希望把文章链接给更多的朋友!

本文给大家分享我的javascript高级编程学习笔记之object和array引用类型,涉及到javascript引用类型相关知识,大家一起看看把。

1. Object类型

大多数引用类型值都是Object类型的实例;而且Object也是ECMAScript中使用最多的一个类型。

创建Object实例有如下两种方式:

new操作符后跟Object构造函数:

对象字面量表示法:

2. Array类型

除了Object之外,Array类型恐怕是ECMAScript中最常用的类型了。 ECMAScript数组的每一项可以保存任何类型的数据(例如,第一个位置可存放字符串,第二个位置保存数值,第三个位置保存对象,以此类推)。而且ECMAScript数组的大小是可以动态调整的,即可以随着数据的添加自动增长以容纳新增数据。

创建数组的基本方式有两种,

使用Array构造函数:

数组字面量表示法

注:数组的length属性很有特点——它不是只读的。因此通过设置这个属性,可以从数组的末尾移除或添加项。例如,

2.1 检测数组

对于一个网页,或者一个全局作用域而言,使用instanceof操作符就能判断某个对象是不是数组:

instanceof操作符的问题在于,它假定只有一个全局执行环境。如果网页中包含多个框架,那实际上就存在两个以上不同的全局执行环境,从而存在两个以上不同版本的Array构造函数。如果你从一个框架向另一个框架传入一个数组,那么传入的数组与在第二个框架中原生创建的数组分别具有各自不同的构造函数。

为了解决这个问题,ECMAScript5新增了Array.isArray( )方法。这个方法的目的是最终确定某个值到底是不是数组,而不管它是在哪个全局执行环境中创建的,

支持该方法的浏览器有IE9+、Firefox 4+、Safari 5+、Opera .5+和Chrome。

2.2 转换方法

调用数组的toString( )方法会返回由数组中每个值的字符串形式拼接而成的一个以逗号分隔的字符串。而调用valueOf( )返回的还是数组。实际上,为了创建这个字符串会调用数组每一项的toString( )方法。例如,

另外,toLocaleString( )方法经常也会返回与toString( )和valueOf( )方法相同的值,但也不总是如此。当调用数组的toLocaleString( )方法时,它也会创建一个数组值的以逗号分隔的字符串。而与前两个方法唯一的不同之处在于,这一次为了取得每一项的值,调用的是每一项的toLocaleString( )方法,而不是toString( )方法。

2.3 栈方法(LIFO)

push( ):接受任意数量的参数,把它们逐个添加到数组末尾,并返回修改后数组的长度; pop( ):从数组末尾移除最后一项

《JavaScript高级编程》学习笔记之object和array引用类型(《JavaScript高级程序设计》pdf链接)

2.4 队列方法(FIFO)

shift( ):移除数组的第一项并返回该项,同时数组长度减1; unshift( ):顾名思义,与shift( )用途相反,能在数组前端添加任意个项并返回数组的长度。

2.5 重排序方法

reverse( ):反转数组项的顺序;

sort( ):默认按升序排列;为了实现排序,sort( )方法会调用每项的toString( )方法,然后比较得到的字符串,以确定如何排序。即使每一项都是数值,比较的也是字符串,如下所示。

这种排序方式在很多情况下都不是最佳方案。因此sort( )方法可以接受一个比较函数作为参数,以便指定哪个值位于哪个值的前面。

这个比较函数可以适用大多数据类型,只要将其作为参数传递给sort( )方法即可,如下,

2.6 操作方法

concat( ):基于当前数组中的所有项创建一个新数组。例如,

slice( ):基于当前数组中的一个或多个项创建一个新数组。例如,

splice( ):这个方法恐怕是最强大的数组方法了,主要用途是向数组的中部插入项,但使用这种方法的方式则有如下2种。

删除:可以删除任意数量的项,只需指定2个参数:要删除的第一项的位置和要删除的项数。

插入:可以向指定位置插入任意数量的项,只需提供3个参数:起始位置、0(要删除的项数)和要插入的项。如果要插入多个项,可以再传第四、第五以至任意多个项;例如,splice(2,0,"red","green")会从当前数组的位置2开始插入字符串"red"和"green"。

splice( )方法始终都会返回一个数组,包含从原始数组中删除的项(如果没有删除任何项,则返回空数组)。

2.7 位置方法

indexOf( )和lastIndexOf( ):这两个方法都接受两个参数:要查找的项和(可选的)表示查找起点位置的索引。前者从开头开始向后查找,后者从末尾向前查找

2.8 迭代方法

ECMAScript5为数组定义了5个迭代方法,每个方法都接受两个参数:要在每一项上运行的函数和(可选的)运行该函数的作用域对象——影响this的值。传入这些方法中的函数会接收三个参数:数组项的值、该项在数组中的位置和数组对象本身。

every( ):对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true。filter( ):对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组。forEach( ):对数组中的每一项运行给定函数,这个方法无返回值。map( ):对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。some( ):对数组中的每一项运行给定函数,如果该函数对任一项返回true,则返回true。

以上方法都不会修改数组中包含的值。例如,

2.9 归并方法

reduce( ):从数组的第一项开始,逐个遍历到最后; reduceRight( ):从数组的最后一项开始,向前遍历到第一项。 这两个方法都接受两个参数:一个在每一项上调用的函数和(可选的)作为归并基础的初始值。传给这些方法的函数接受4个参数:前一个值、当前值、项的索引和数组对象。这个函数返回的任何值都会作为第一个参数传给下一项。例如,

javascript跨域总结之window.name实现的跨域数据传输 自己实践了一下,真的很好用。特将具体实现方法记录如下有三个页面:a.com/app.html:应用页面。a.com/proxy.html:代理文件,一般是一个没有任何内容的ht

JavaScript调用传递变量参数的相关问题及解决办法 举例有一个js方法,接收参数:functionf1(myValue){alert(myValue);}有一个变量:varpassValue="HelloWorld";在调用这个方法的时候(我是出现在Ajax提交的时候):@Ajax.Acti

JavaScript Length 属性的总结 关于javascriptlength属性的总结请看以下内容详解。一、StringObject中的lengthlength属性是返回字符串的字符数目。例如://普通字符串varstr="abcdef";console.log(str.le

标签: 《JavaScript高级程序设计》pdf链接

本文链接地址:https://www.jiuchutong.com/biancheng/382695.html 转载请保留说明!

上一篇:JS实现的论坛Ajax打分效果完整实例(js 实现ajax)

下一篇:javascript跨域总结之window.name实现的跨域数据传输(js script跨域)

  • 税后净利润是什么意思
  • 金税四期记账报税流程
  • 以经营房产投资合营收固定收益如何开发票?
  • 个人提供劳务报酬需要到税务局开发票吗?
  • 算税负是用含税的吗
  • 个体户怎么网上报税流程
  • 工程结算扣罚款怎么开票
  • 消费卡预付卡能入账吗
  • 换工作个税申报忘记更改
  • 没有工会 还需要交钱吗
  • 发票领回来了怎么读入发票
  • 企业流水账怎么查
  • 资产负债表上的资产是原值还是净值
  • 小企业取得存货计量的原则
  • 当月销项税大于进项税怎么办
  • 购买润滑油分录
  • 在筹建期间的费用属于什么
  • 出口退税进项发票稽核
  • 应交税费计提是借方还是贷方
  • 农产品收购发票上的买价含税吗
  • 销售佣金税点
  • 加班工资算做个月工资吗
  • 技术开发加计扣除
  • 分公司可以单独签协议吗
  • 不动产取得以什么为要件
  • 去年的企业所得税
  • 支票付款的弊端
  • 增值税有留底怎么申请退税
  • 企业接收股东划入资产作为收入处理有所得税差异吗
  • 原材料实际成本法核算问题
  • 事业单位本年度工作小结
  • 补交地税多少钱
  • 异地使用支票的提示付款期限
  • 商贸企业税收优惠政策
  • 账务处理程序有什么
  • 向境外支付技术服务费怎里面的增值税怎么入账
  • 增值税价外费用怎么算
  • 结算借款的账务处理办法
  • ant design pro项目构建纯净版
  • 支付水电费增值税账务处理
  • 长期借款的
  • PHP使用http_build_query()构造URL字符串的方法
  • 应交城建税怎么算
  • 法定盈余公积使用于什么
  • 本地存储localstorage没有拿到最新值
  • 一般纳税人增值税怎么做账务处理
  • 简述社会保险的项目
  • 账本印花税怎么申报缴纳
  • 三个数排序c语言程序从大到小
  • mongodb如何查询数据
  • 织梦logo
  • mysql怎么修改
  • sql存储过程详解图
  • 外购商品发放给员工 进项税额能不能抵扣
  • 完整的会计核算流程
  • 税控盘减免税款冲减管理费用
  • 政府拆迁赔款会计上怎样做账
  • 住房租金专项附加扣除金额
  • 股权变更产生的税费
  • 未确认融资费用怎么算
  • 年中重新建账还要年初数吗?
  • win8系统手机
  • 无线网卡搜索不到无线网
  • win8摄像头设置
  • servers.mcs
  • linux shell find
  • win81怎么取消开机密码
  • 如何把win7系统复制到u盘里
  • Win10红石版Edge浏览器新扩展功能:关灯(附扩展程序使用)
  • bat怎么设置
  • xcopy /s /e
  • iframe用法和代码
  • nodejs promise.all
  • python如何做网站
  • scrapy—redis
  • jquery的哪个方法可以绑定mouseover
  • 江苏常州税务局电话人工服务电话
  • 如何抵扣
  • 国家税务总局关于新型墙体材料增值税政策的通知
  • 重庆公交司机收入
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设