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 相关文章推荐
js 面向对象的技术创建高级 Web 应用程序
Feb 25 Javascript
javascript读写json示例
Apr 11 Javascript
Js中使用hasOwnProperty方法检索ajax响应对象的例子
Dec 08 Javascript
Javascript将字符串日期格式化为yyyy-mm-dd的方法
Oct 27 Javascript
实现JavaScript高性能的数据存储
Dec 11 Javascript
浅谈React和Redux的连接react-redux
Dec 04 Javascript
解决Vue.js父组件$on无法监听子组件$emit触发事件的问题
Sep 12 Javascript
关于微信小程序登录的那些事
Jan 08 Javascript
Angular8 Http拦截器简单使用教程
Aug 20 Javascript
Vue使用JSEncrypt实现rsa加密及挂载方法
Feb 07 Javascript
JS实现图片懒加载(lazyload)过程详解
Apr 02 Javascript
JavaScript Event Loop相关原理解析
Jun 10 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排序之二维数组的按照字母排序实现代码
2011/08/13 PHP
最新用php获取谷歌PR值算法,附上php查询PR值代码示例
2011/12/25 PHP
smarty巧妙处理iframe中内容页的代码
2012/03/07 PHP
PHP的魔术常量__METHOD__简介
2014/07/08 PHP
PHP+MYSQL实现用户的增删改查
2015/03/24 PHP
AJAX PHP无刷新form表单提交的简单实现(推荐)
2016/09/09 PHP
thinkPHP5 ACL用户权限模块用法详解
2017/05/10 PHP
php使用json-schema模块实现json校验示例
2019/09/28 PHP
YII2框架中behavior行为的理解与使用方法示例
2020/03/13 PHP
pjblog修改技巧汇总
2007/03/12 Javascript
jQuery中与toggleClass等价的程序段 以及未来学习的方向
2010/03/18 Javascript
js 文件引入实现代码
2010/04/23 Javascript
Javascript操作cookie的函数代码
2012/10/03 Javascript
仿谷歌主页js动画效果实现代码
2013/07/14 Javascript
JQUERY dialog的用法详细解析
2013/12/19 Javascript
JavaScript闭包详解
2015/02/02 Javascript
详解AngularJS中的http拦截
2016/02/09 Javascript
基于javascript实现全屏漂浮广告
2016/03/31 Javascript
Summernote实现图片上传功能的简单方法
2016/07/11 Javascript
JavaScript的==运算详解
2016/07/20 Javascript
js实现的光标位置工具函数示例
2016/10/03 Javascript
任意Json转成无序列表的方法示例
2016/12/09 Javascript
浅谈webpack编译vue项目生成的代码探索
2017/12/11 Javascript
小试小程序云开发(小结)
2019/06/06 Javascript
element form 校验数组每一项实例代码
2019/10/10 Javascript
使用Python编写简单的画图板程序的示例教程
2015/12/08 Python
Python的MongoDB模块PyMongo操作方法集锦
2016/01/05 Python
python中将函数赋值给变量时需要注意的一些问题
2017/08/18 Python
Python sklearn KFold 生成交叉验证数据集的方法
2018/12/11 Python
努比亚手机官网:nubia
2016/10/06 全球购物
moosejaw旗下的户外商品促销网站:Mountain Steals
2017/02/27 全球购物
会计的岗位职责
2014/03/15 职场文书
《桃林那间小木屋》教学反思
2014/05/01 职场文书
退休教师追悼词
2015/06/23 职场文书
学习计划是什么
2019/04/30 职场文书
高中16字霸气押韵班级口号集锦!
2019/06/27 职场文书