JavaScript包装对象使用介绍


Posted in Javascript onAugust 29, 2013

JavaScript是面向对象的语言,使用”.”操作符可以访问对象的属性和方法,而对于基本类型(null, undefined, bool, number, string)应该是值类型,没有属性和方法,然而

var s='this is a string';
alert(s.length);
alert(s.indexOf('is'));

结果很简单,但是仔细想想还真奇怪,string不是值类型吗!怎么又有属性又有方法的!

内置对象

JavaScript有一系列内置对象来创建语言的基本功能,具体看一下

Boolean

Boolean 对象表示两个值:"true" 或 "false"。当作为一个构造函数(带有运算符 new)调用时,Boolean() 将把它的参数转换成一个布尔值,并且返回一个包含该值的 Boolean 对象。如果作为一个函数(不带有运算符 new)调用时,Boolean() 只将把它的参数转换成一个原始的布尔值,并且返回这个值,如果省略 value 参数,或者设置为 0、-0、null、""、false、undefined 或 NaN,则该对象设置为 false。否则设置为 true(即使 value 参数是字符串 "false")。

Boolean 对象包括 toString 和 valueOf 方法, Boolean 最常用于在 条件语句中 true 或 false 值的简单判断,布尔值和条件语句的组合提供了一种使用 JavaScript 创建逻辑的方式。

Number

Number对象是一个数值包装器,该对象包含几个只读属性

•MAX_VALUE:1.7976931348623157e+308 //JavaScript能够处理的最大数
•MIN_VALUE:5e-324 //JavaScript能够处理的最小数
•NEGATIVE_INFINITY:-Infiny //负无穷
•POSITIVE_INFINITY:Infinity //正无穷
•NaN:NaN //非数字
Number 对象还有一些方法,可以用这些方法对数值进行格式化或进行转换

•toExponential //以指数形式返回 数字的字符串表示
•toFixed //把Number四舍五入为指定小数位数的数字
•toPrecision //在对象的值超出指定位数时将其转换为指数计数法
•toString //返回数字的字符串表示
•valueOf //继承自object
String

String 对象是文本值的包装器。除了存储文本,String 对象包含一个属性和各种 方法来操作或收集有关文本的信息,String 对象不需要进行实例化便能够使用。

String 对象只有一个只读的length属性用于返回字符串的长度。String对象拥有很多方法

•charAt
•charCodeAt
•concat
•fromCharCode
•indexOf
•lastIndexOf
•match
•replace
•search
•slice
•split
•substr
•substring
•toLowerCase
•toUpperCase

包装对象

除了上面三个对象,JavaScript还拥有Date、Array、Math等内置对象,这三个经常显示使用,所以非常熟悉,知道了内置对象就可以看看上面例子是怎么回事儿了。

只要是引用了字符串的属性和方法,JavaScript就会将字符串值通过new String(s)的方式转为内置对象String,一旦引用结束,这个对象就会销毁。所以上面代码在使用的实际上是String对象的length属性和indexOf方法。

同样的道理,数字和布尔值的处理也类似。,null和undefined没有对应对象。既然有对象生成,能不能这样

var s='this is a string';
s.len=10;
alert(s.len);

结果并没有返回10,而是undefined!不是说好了是个对象吗!正如刚才提到第二行代码只是创建了一个临时的String对象,随即销毁,第三行代码又会创建一个新的临时对象(这就是低版本IE频繁处理字符串效率低的一个原因),自然没有len属性。这个创建的临时对象就成为包装对象。没想到一行简单的代码还包含这么多姿势。

Javascript 相关文章推荐
ExtJS Ext.MessageBox.alert()弹出对话框详解
Apr 02 Javascript
js中格式化日期时间型数据函数代码
Nov 08 Javascript
用jquery统计子菜单的条数示例代码
Oct 18 Javascript
关于延迟加载JavaScript
May 05 Javascript
javascript封装 Cookie 应用接口
Aug 07 Javascript
js实现超简单的展开、折叠目录代码
Aug 28 Javascript
jQuery文本框得到与失去焦点动态改变样式效果
Sep 08 Javascript
微信小程序(应用号)开发新闻客户端实例
Oct 24 Javascript
基于JQuery和原生JavaScript实现网页定位导航特效
Apr 03 jQuery
Webpack执行命令参数详解
Jun 17 Javascript
Vue实现PopupWindow组件详解
Apr 28 Javascript
TypeScript中使用getElementXXX()的示例代码
Sep 12 Javascript
JavaScript作用域链使用介绍
Aug 29 #Javascript
JavaScript 命名空间 使用介绍
Aug 29 #Javascript
JavaScript prototype 使用介绍
Aug 29 #Javascript
JavaScript创建对象的写法
Aug 29 #Javascript
jQuery实现用户注册的表单验证示例
Aug 28 #Javascript
Jquery实现显示和隐藏的4种简单方式
Aug 28 #Javascript
jQuery动画效果-slideUp slideDown上下滑动示例代码
Aug 28 #Javascript
You might like
php使用异或实现的加密解密实例
2013/09/04 PHP
php的优点总结 php有哪些优点
2019/07/19 PHP
关于PHP5.6+版本“No input file specified”问题的解决
2019/12/11 PHP
JavaScript使用prototype定义对象类型
2007/02/07 Javascript
求得div 下 img的src地址的js代码
2007/02/28 Javascript
COM中获取JavaScript数组大小的代码
2009/11/22 Javascript
基于jquery的商品展示放大镜
2010/08/07 Javascript
Array.prototype.concat不是通用方法反驳[译]
2012/09/20 Javascript
js清空表单数据的两种方式(遍历+reset)
2014/07/18 Javascript
jQuery获取某天的农历日期并判断是否除夕或新年的方法
2016/03/01 Javascript
浅析javascript中的Event事件
2016/12/09 Javascript
vue动态组件实现选项卡切换效果
2017/03/08 Javascript
[02:26]2018DOTA2亚洲邀请赛赛前采访-Newbee篇
2018/04/03 DOTA
[56:21]LGD vs IG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
在Python中使用base64模块处理字符编码的教程
2015/04/28 Python
举例讲解如何在Python编程中进行迭代和遍历
2016/01/19 Python
Python脚本实现12306火车票查询系统
2016/09/30 Python
浅谈DataFrame和SparkSql取值误区
2018/06/09 Python
对python数据切割归并算法的实例讲解
2018/12/12 Python
Django CSRF认证的几种解决方案
2020/03/03 Python
PyQt5 如何让界面和逻辑分离的方法
2020/03/24 Python
python3通过qq邮箱发送邮件以及附件
2020/05/20 Python
世界上最全面的汽车零部件和配件集合:JC Whitney
2016/09/04 全球购物
世界领先的高品质定制产品平台:Zazzle
2017/07/23 全球购物
优衣库台湾官网:UNIQLO台湾
2019/02/01 全球购物
优秀学生干部个人的自我评价
2013/10/04 职场文书
战友聚会邀请函
2014/01/18 职场文书
应届毕业生自荐书
2014/06/18 职场文书
幼儿园中班区域活动总结
2014/07/09 职场文书
干部职工纪律作风整改措施思想汇报
2014/10/11 职场文书
单位未婚证明范本
2014/11/25 职场文书
大学生考试作弊被抓检讨书
2014/12/27 职场文书
2015年入党积极分子培养考察意见
2015/08/12 职场文书
Python离线安装openpyxl模块的步骤
2021/03/30 Python
pyqt5蒙版遮罩mask,setmask的使用
2021/06/11 Python
JPA 通过Specification如何实现复杂查询
2021/11/23 Java/Android