位置: 编程技术 - 正文

JavaScript高级程序设计(第3版)学习笔记11 内建js对象(javascript高级程序设计最新版)

编辑:rootadmin
内建对象就好比是JDK中的类库,开发者可以直接拿来使用,这极大的方便了常见的编程任务。这篇文章就来浏览一下主要的内建对象,当然,我们并不是第一次接触内建对象,前面已经接触到的就有Object、Function、Boolean、Number、String,对于已经介绍过的,这里再总结复习一下,没有介绍过的,根据相关性来对比的总结,RegExp对象及正则表达式在下一篇中再单独介绍。

1、内建全局单例对象

(1)内建全局单例对象:在整个执行环境中只有一个对象实例,这些对象没有内部属性[[Construct]]和[[Call]],因此不能使用new来创建,也不能作为函数来调用,而是直接使用对象名称来引用其属性和方法(对于全局对象,则可以直接使用属性和方法名)。内建全局单例对象有Global、Math、JSON。

(2)内建常量:主要是指内建全局单例对象的属性,这些属性的[[Writable]]、[[Configurable]]、[[Enumerable]]特性全部为false,因此不能修改属性值,不能删除属性,也不能在for-in循环中枚举。这些内建常量有:

对象名称常量值说明对象名称常量值说明GlobalNaNNaN表示不是数值MathE≈2.自然对数的底数 eInfinity+∞正无穷LN≈2. 的自然对数undefinedundefined未定义LN2≈0.的自然对数LOG2E≈1.e 的以2 为底的对数LOGE≈0.e 的以为底的对数PI≈3.圆周率,即圆周长与直径的比SQRT1_2≈0.的平方根的倒数SQRT2≈1.的平方根

注:Global对象中的常量可以使用名称直接访问,Math对象中的常量需使用类似Math.PI的形式来访问。

(3)内建静态方法:

所属对象类别方法说明Global全局解析方法eval(x)解析Javascript字符串,eval中定义的变量不会提升,在严格模式下,外部不能访问eval内定义的变量字符串解析为NumberparseInt(string,radix)将字符串解析为整数,可以传入一个进制,会忽略前导空格parseFloat(string)将字符串解析为浮点数,会忽略前导的空格和前导0Number判断方法isNaN(number)判断是否为数字isFinite(number)判断是否为有限数URI处理方法encodeURI(uri)对URI编码,用于整个URI,用特殊的UTF-8编码替换所有无效字符,不会对本身属于URI的特殊字符编码,如冒号,正斜杠,问号,井号等。decodeURI(ecodedURI)对使用ecnodeURI()编码的字符串解码encodeURIComponent(uriComponent)对URI编码,用于URI中的某一段,会对发现的任何非标准字符进行解码decodeURIComponent(encodedURIComponent)对使用ecnodeURIComponent()编码的字符串解码内建对象构造器方法

Object、Function、Array、String、Number、Boolean、Date、RegExp

Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError

这里每一个构造函数都构成了一个内建的对象类型Math三角函数sin(x)、cos(x)、tan(x)x的正弦、余弦、正切反三角函数asin(x)、acos(x)、atan(x)、atan2(y,x)x的烦正弦、反余弦、反正切、y/x的反正切舍入函数ceil(x)、floor(x)、round(x)向上舍入(大于该数的最小整数)、向下舍入(小于该数的最大整数)、四舍五入最值函数max([value1[value2[,...]]])、min([value1[,value2[,...]]])最大值、最小值随机函数random()返回介于0和1之间的随机数,不包括0和1.随机公式:随机值=Math.floor(Math.random() * 可能值的个数 + 初始值)其它常见数学函数abs(x)、exp(x)、log(x)、pow(x,y)、sqrt(x)绝对值、Math.E的x次幂、x的自然对数、x的y次幂、x的平方根JSON 解析parse(text[,reviver])把JSON字符串解析外为Javascript值序列化stringify(value[,replacer[,space]])把Javascript对象序列号为JSON字符串,默认情况下不包括空格和缩进,所有函数、原型成员以及值为undefined的属性会被忽略

说明:

(1)全局对象中还有escape()/unescape()方法,由于这两个方法只能正确编码ASCII字符已经被废弃,而使用上表中的encodeURI()等方法来替换。

(2)JSON.parse()可以接受一个可选的参数,这个参数是一个函数,被称为还原函数,还原函数返回一个值,接受两个参数:一个键和一个值。如果还原函数返回undefined,表示要从结果中删除相应的键,返回其他值,则将该值插入到结果中。

(3)JSON.stringify()可以接受二个可选参数:

  A、第一个可选参数是个过滤器,可以是一个数组,也可以是一个函数。如果是一个数组,那么结果中只保留这个数组中列出的属性;如果是一个函数,这个函数被称为替换函数,接受两个参数:一个键和一个值。替换函数返回undefined时会忽略这个键,否则就将返回值作为这个键的值插入到相应位置。

  B、第二个可选参数是个选项,表示是否在JSON字符串中保留缩进。如果这个参数是数字,表示每个级别缩进的空格数(最大不能超过,超过时自动设置为),如果这个参数是字符串,则将作为缩进字符处理。

  在调用JSON.stringify(obj)时,如果obj中有toJSON()方法并返回一个有效值时,会首先调用这个方法。

2、Object与Function

  这两个内建对象在前面已经重点讨论过,这里总结一下:

对象/构造函数/[[Class]]构造器属性(静态属性)原型属性实例属性内部属性Objectprototypeconstructor [[Prototype]] defineProperty()toString()[[Class]]defineProperties()toLocaleString()[[Extensible]]getOwnPropertyDescriptor()valueOf()[[Get]]preventExtensions()hasOwnProperty()[[GetOwnProperty]]seal()propertyIsEnumerable()[[GetProperty]]isSeal()isPrototypeOf() [[Put]]frozen()[[CanPut]]isFreeze()[[HasProperty]]create()[[Delete]]getOwnPropertyNames()[[DefaultValue]]getPrototypeOf()[[DefineOwnProperty]]keys() Functionprototypecall()prototype[[HasInstance]]lengthapply()length [[Scope]]bind() [[FormalParameters]][ (4)判断一个对象是否为数组时,在ES5中可以直接使用Array.isArray(obj), 在不支持isArray方法的环境中时,可以使用obj instanceof Array来判断只有一个作用域的情况,但是更加稳妥的判断方法是利用Array对象的内部属性[[Class]]来判断: (5)关于String的slice()、sbustr()、substring(),如果只传入了第一个参数,则截取从第一个参数至末尾。当传入负参数时:   A、slice()会将负参数加上字符串长度,使参数为正   B、substr()会将负的第一个参数加上字符串的长度,将负的第二个参数转换为0   C、substring()会将所有负参数转换为0,如果第2个参数小于第1个参数,会互换两个参数 (6)关于String对象replace()方法的第二个参数 如果是字符串,可以使用一些特殊字符将正则表达式操作得到的值插入到结果字符串中,这些特殊字符有:字符序列替换文本$$$$&匹配整个模式的字符串,与RegExp.lastMatch的值相同$'匹配的子字符串之前的子字符串,与RegExp.leftContext的值相同$`匹配的子字符串之后的子字符串,与RegExp.rightContext的值相同$n匹配第n个捕获组的子字符串,其中n等于1~9,如果正则表达式中没有定义捕获组,则使用空字符串$nn匹配第nn个捕获组的子字符串,其中n等于~,如果正则表达式中没有定义捕获组,则使用空字符串

如果是函数,这个函数接受的参数:模式的匹配项,第一个捕获组的匹配项,...,第n个捕获组的匹配项,模式的匹配项在字符串中的位置,原始字符串。函数应该返回一个字符串,表示应该被替换的匹配项。

(7)String对象的HTML方法

方法输出结果方法输出结果anchor(name)<a name="name">string</a>italics()<i>string</i>big()<big>string</big>link(url)<a href="url">url</a>bold()<b>string</b>small()<small>string</small>fixed()<tt>string</tt>strike()<strike>string</strike>fontcolor(color)<font color="color">string</font>sub()<sub>string</sub>fontsize(size)<font size="size">string</font>sup()<sup>string</sup>

4、Number与Boolean

  String、Number和Boolean对象是相应简单数据类型的包装对象,他们都有一个共同的特征:作为构造函数调用时是创建一个对象,作为一般函数调用时则是类型转换。由于所有对象相应的Boolean类型值都是true,所以需要特别注意的是new Boolean(false)在布尔运算中会作为true去处理,这里的建议就是永远不要使用Boolean对象。

String、Number和Boolean类型的变量可以直接调用相应包装对象的方法,实际上在后台会自动转换为相应包装对象,然后调用方法。String和Boolean类型的字面量也可以直接调用包装对象的方法,但是Number类型的字面量不能直接调用Number对象的方法。 关于包装对象的属性和方法,String对象已经在上一小节列出,Boolean对象除覆盖了Object的toString()和valueOf()外没什么特别需要注意的,下面再总结一下Number对象的属性和方法。 静态属性(常量)说明方法说明Number.MAX_VALUENumber类型能够表示的最大值valueOf()返回对象表示的基本类型的数值Number.MIN_VALUENumber类型能够表示的最小值toLocaleString()返回对象表示的数值的字符串形式Number.NaNNaNtoString()返回对象表示的数值的字符串形式,可以接受一个表示进制的参数Number.NEGAIVE_INFINITY负无穷toFixed()按照指定的小数位返回数值的字符串表示,如果数值比指定的小数位多,会进行四舍五入处理Number.POSITIVE_INFINITY正无穷toExponential()返回以指数表示法表示的数值的字符串形式,接受一个表示小数个数的参数 toPrecision()接受一个表示数值的所有数字的位数(不包括指数部分),可能返回固定大小格式,也可能返回指数形式

5、Date

  ECMAScript中的Date对象和Java中的java.util.Date一样,采用UTC(Coordinated Universal Time,国际协调时间)年1月1日午夜(零时)开始经过的毫秒数来保存日期。

(1)创建日期对象

  A、构造函数:可以通过new Date()创建对象自动获取当前日期和时间,也可以传入表示日期的毫秒数来创建日期,还可以传入和下面的Date.parse()与Date.UTC()相同的参数(在后台会先调用Date.parse()或Date.UTC(),后台调用Date.UTC()时是基于系统本地时区而非GMT创建的)来创建日期。

  B、Date.parse():接受一个表示日期的字符串参数,然后尝试根据这个字符串返回相应日期的毫秒数。日期格式和具体的实现及地区有关。如果传入的字符串不能表示日期,返回NaN。

  C、Date.UTC():返回表示日期的毫秒数,参数分别是年份、基于0的月份、月中的哪一天(1~)、小时(0~)、分钟、秒以及毫秒数,这些参数中,前面两个参数(年月)是必须的,没有提供天数时默认为1,其它参数没有提供时默认为0。

  D、Date.now():在ES5中新增,返回表示调用这个方法的日期和时间的毫秒数。这可以用来分析代码执行的时间:

(2)方法列表

方法说明getter/setter方法说明toLocaleString()按照与浏览器设置的地区相适应的格式返回日期和时间,其中时间一般以小时制表示(通常含AM或PM)setTime(毫秒)没有对应的UTC方法toString()通常返回带有时区信息的日期和时间,其中时间一般以小时制表示setFullYear(年)4位数的年份valueOf()返回日期的毫秒表示,这为日期的比较提供了便利setMonth(月)0~,0表示一月,表示十二月,超过增加年份toDateString()以特定于实现的格式显示星期几、月、日和年setDate(日)超过范围时会增加月份toTimeString()以特定于实现的格式显示时、分、秒和时区setHours(时)传入值超过了会增加天数toLocaleDateString()以特定于实现的格式显示星期几、月、日和年setMinutes(分)传入值超过了会增加小时数toLocaleTimeString()以特定于实现的格式显示时、分、秒setSeconds(秒)传入值超过了会增加分钟数toUTCString()以特定于实现的格式显示完整的UTC日期setMilliseconds(毫秒) toGMTString()和toUTCString()等价,主要是为了向后兼容而保留的getDay()没有对应的setter方法,0表示星期日,6为星期六getTimezoneOfSet()返回本地时间与UTC时间相差的毫秒数

说明:上表getter/setter列中,除了setTime()外,均有一套相应UTC方法,比如对应setFullYear()有getFullYear()、setUTCFullYear()、getUTCFullYear()方法。

6、Error

(1)从ES3开始引入了try-catch语句,用于捕获异常,结构和Java中的异常处理类似。这里需要注意的是,在使用finally子句时,如果里面有return语句,由于finally语句无论怎样都会执行,因此会覆盖之前的return语句。

说明:按照规范,catch和finally子句只要有一个即可,但是在IE7的实现中有一个bug,没有catch子句时就不会执行finally子句,所以为了保证兼容性,每一个try都加上catch子句(如果需要在外层处理,可以把捕获的异常使用throw向外抛出)。

(2)错误类型

错误类型说明ErrorError是所有错误类型的父类,因此所有错误类型共享了一组相同的属性和方法,这个基类型的主要作用是供开发人员抛出自定义错误EvalError在使用eval()函数而发生异常时抛出,简单的说,如果没有把eval()当成函数调用,就会抛出错误RangeError在数值超出范围时抛出,如定义数组时传入负参数就会抛出RangeErrorReferenceError找不到对象的情况下抛出SyntaxError把语法错误的字符串传入eval()时抛出TypeError在变量中保存着意外的类型,或者访问不存在的方法时,会导致这种错误URIError在使用encodeURI()或decodeURI(),URI格式不正确时抛出

注:这里只是简要列举了一些内建的错误对象,没有对错误处理以及调试技术做过多的阐述,感兴趣的朋友可以自行查找相关资料。

推荐整理分享JavaScript高级程序设计(第3版)学习笔记11 内建js对象(javascript高级程序设计最新版),希望有所帮助,仅作参考,欢迎阅读内容。

JavaScript高级程序设计(第3版)学习笔记11 内建js对象(javascript高级程序设计最新版)

文章相关热门搜索词:javascript高级程序设计最新版,javascript高级程序设计第五版 pdf下载,javaScript高级程序设计有几版,javaScript高级程序设计,javaScript高级程序设计有几版,javascript高级程序设计pdf下载,javascript高级程序设计电子版,javascript高级程序设计电子版,内容如对您有帮助,希望把文章链接给更多的朋友!

JavaScript高级程序设计(第3版)学习笔记 js正则表达式 需要指出的是,这里只是总结了正则表达式的常用的且比较简单的语法,而不是全部语法,在我看来,掌握了这些常用语法,已经足够应对日常应用了

JavaScript高级程序设计(第3版)学习笔记 ECMAScript5新特性 接下来应该是BOM和HTML5了,但是鉴于ECMAScript5相对于ECMAScript3的新变化比较多,而且这些变化也非常的有意思,因此在这篇文章中再将我认为的有意思的

js indexOf()定义和用法 返回String对象内第一次出现子字符串的字符位置。strObj.indexOf(subString[,startIndex])参数strObj必选项。String对象或文字。subString必选项。要在String对象中查

标签: javascript高级程序设计最新版

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

上一篇:JavaScript高级程序设计(第3版)学习笔记10 再访js对象(javascript高级程序设计第三版)

下一篇:JavaScript高级程序设计(第3版)学习笔记12 js正则表达式(javascript高级程序设计pdf下载)

  • 小额零星开支税前扣除
  • 个人所得税专项扣除子女教育标准
  • 发票没有纳税人识别号能开吗
  • 月末怎么计提税费
  • 贴息为什么要付利息呢
  • 员工充值饭卡的收入如何做账
  • 代订机票被骗可以追回吗
  • 外贸企业出口采购流程
  • 影视发行收入该如何做税收处理?
  • 地税保险单位编号是什么
  • 个人如何开劳务费怎么开
  • 营改增的优惠政策
  • 免税和不征税货一样吗
  • 当期应税销售收入是含税还是不含税
  • 增值税专用发票验票
  • 房地产企业土地增值税清算案例
  • 哪些外籍个人应在中国缴纳个税?
  • 餐饮发票是普票能报销么
  • 建厂房的费用怎么记账
  • 个税申报已经扣了怎么办
  • 收购免税农产品的税率
  • 个体工商户给员工交社保属于职工社保吗
  • 事业单位收到奖励款怎么入账
  • 农业种植公司要纳税吗
  • 固定资产更新改造支出资本化
  • win11专业版网卡安不了
  • vue实现打印
  • 股权转让个人所得税优惠政策
  • h5调用海康摄像头
  • 应收票据贴现的性质是什么
  • 投资公司收到境外债务
  • 建筑劳务 行业
  • php的两种运行方式
  • Python 计算机视觉(八)—— OpenCV 进行图像增强
  • 什么情况下要开外经证
  • 每个公司都要交房产税吗
  • 服务费开票税收分类
  • 收到汇算清缴后怎么处理
  • 双重数组
  • 公司车辆出售要交多少税
  • 网红产品的推广文案
  • 金蝶kis固定资产反结账
  • 金税四期的政策
  • 支付给法律顾问怎么做账
  • 1元换购的商品是正品吗
  • 差旅费所得税扣除标准2023
  • 债务重组的方式不包括债务转为资本
  • 房屋建筑物固定资产标牌图片
  • 工会经费可以在以后年度扣除吗
  • 记账凭证的分类标准
  • 不同利益主体之间的利益如何协调
  • 什么是发票抬头怎么填
  • 利润表持续经营净利润怎么算
  • 分公司注销余额转总公司会计分录
  • 园林土方施工有哪些分项工程
  • win10预览版绿屏重启解决
  • ubuntu无法正常开机
  • xp怎么改w7
  • macos教程
  • centos7安装中文包
  • window10怎么升11
  • 联想电脑win7系统开机修改开机密码
  • 微软何时推出win10
  • kmswin7激活步骤
  • win7系统开机后桌面黑屏
  • JavaScript_ECMA5数组新特性详解
  • 开手游游戏
  • 基于web的学生成绩管理系统毕业论文
  • meta 标签
  • function函数的定义
  • javascript:void(0)的作用示例介绍
  • js函数function用法
  • unity资源包管理器
  • mongoose教程
  • js函数的使用规则
  • Shell、Perl、Python、PHP访问 MySQL 数据库代码实例
  • unity控制组件开关
  • 重庆网上税务局个人怎么绑定企业账户
  • 对外支付佣金需要代扣代缴印花税吗
  • 电子税务局第一次申请发票流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设