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 相关文章推荐
jquery ajax abort()的使用方法
Oct 28 Javascript
自己动手开发jQuery插件教程
Aug 25 Javascript
前端开发过程中浏览器版本的两种判定方法
Oct 30 Javascript
深入理解JavaScript系列(38):设计模式之职责链模式详解
Mar 04 Javascript
VueJS组件之间通过props交互及验证的方式
Sep 04 Javascript
JavaScript实现图片本地预览功能【不用上传至服务器】
Sep 20 Javascript
vue2手机APP项目添加开屏广告或者闪屏广告
Nov 28 Javascript
Vue+mui实现图片的本地缓存示例代码
May 24 Javascript
详解babel升级到7.X采坑总结
May 12 Javascript
基于JS实现table导出Excel并保留样式
May 19 Javascript
OpenLayers3实现对地图的基本操作
Sep 28 Javascript
详解Vue2的diff算法
Jan 06 Vue.js
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
三国漫画《火凤燎原》宣布动画化PV放出 预计2020年播出
2020/03/08 国漫
用PHP和ACCESS写聊天室(二)
2006/10/09 PHP
用sql命令修改数据表中的一个字段为非空(not null)的语句
2010/06/04 PHP
基于php实现长连接的方法与注意事项的问题
2013/05/10 PHP
PHP利用MySQL保存session的实现思路及示例代码
2014/09/09 PHP
php中substr()函数参数说明及用法实例
2014/11/15 PHP
浅谈php中的访问修饰符private、protected、public的作用范围
2016/11/20 PHP
JS支持带x身份证号码验证函数
2008/08/10 Javascript
javascript Object与Function使用
2010/01/11 Javascript
window.navigate 与 window.location.href 的使用区别介绍
2013/09/21 Javascript
jquerymobile局部渲染的各种刷新方法小结
2014/03/05 Javascript
js判断字符长度及中英文数字等
2014/03/19 Javascript
jQuery对象和DOM对象之间相互转换的方法介绍
2015/02/28 Javascript
jquery UI Datepicker时间控件的使用方法(加强版)
2015/11/07 Javascript
Vue组件tree实现树形菜单
2017/04/13 Javascript
Angular实现的简单查询天气预报功能示例
2017/12/27 Javascript
vue插件开发之使用pdf.js实现手机端在线预览pdf文档的方法
2018/07/12 Javascript
Vue表单输入绑定的示例代码
2018/11/01 Javascript
JS匿名函数内部this指向问题详析
2019/05/10 Javascript
基于VUE实现简单的学生信息管理系统
2021/01/13 Vue.js
[04:27]2014DOTA2国际邀请赛 NAVI战队官方纪录片
2014/07/21 DOTA
Python程序语言快速上手教程
2012/07/18 Python
用python + openpyxl处理excel2007文档思路以及心得
2014/07/14 Python
在Linux中通过Python脚本访问mdb数据库的方法
2015/05/06 Python
Python多进程同步简单实现代码
2016/04/27 Python
Pandas中DataFrame的分组/分割/合并的实现
2019/07/16 Python
Python轻量级web框架bottle使用方法解析
2020/06/13 Python
python实现取余操作的简单实例
2020/08/16 Python
打印机墨盒:123Inkjets
2017/02/16 全球购物
最新英语专业学生求职信范文
2013/09/21 职场文书
大学生实习证明范本
2014/01/15 职场文书
党员教师四风问题对照检查材料
2014/09/26 职场文书
民事起诉书范本
2015/05/19 职场文书
2015年学校综合治理工作总结
2015/07/20 职场文书
Pytorch中TensorBoard及torchsummary的使用详解
2021/05/12 Python
Python 实现绘制子图及子图刻度的变换等问题
2021/05/31 Python