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中符号转意问题示例探讨
Aug 19 Javascript
JavaScript中的定时器之Item23的合理使用
Oct 30 Javascript
AngularJS入门心得之directive和controller通信过程
Jan 25 Javascript
教你如何在Node.js中使用jQuery
Aug 28 Javascript
vue2.0 better-scroll 实现移动端滑动的示例代码
Jan 25 Javascript
代码整洁之道(重构)
Oct 25 Javascript
javaScript实现游戏倒计时功能
Nov 17 Javascript
微信小程序开发问题之wx.previewImage
Dec 25 Javascript
5个你不知道的JavaScript字符串处理库(小结)
Jun 01 Javascript
使用vue实现通过变量动态拼接url
Jul 22 Javascript
JavaScript实现单点登录的示例
Sep 23 Javascript
微信小程序实现选项卡滑动切换
Oct 22 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数据库类
2009/05/27 PHP
php面向对象中的魔术方法中文说明
2014/03/04 PHP
YII Framework框架教程之日志用法详解
2016/03/14 PHP
php libevent 功能与使用方法详解
2020/03/04 PHP
Javascript String对象扩展HTML编码和解码的方法
2009/06/02 Javascript
制作高质量的JQuery Plugin 插件的方法
2010/04/20 Javascript
HTML DOM的nodeType值介绍
2011/03/31 Javascript
写自已的js类库需要的核心代码
2012/07/16 Javascript
js加强的经典分页实例
2013/03/15 Javascript
文本域中换行符的替换示例
2014/03/04 Javascript
Javascript编写2048小游戏
2015/07/07 Javascript
js实现带缓冲效果的仿QQ面板折叠菜单代码
2015/09/06 Javascript
谈谈JSON对象和字符串之间的相互转换JSON.stringify(obj)和JSON.parse(string)
2015/10/01 Javascript
最全的Javascript编码规范(推荐)
2016/06/22 Javascript
javascript匀速动画和缓冲动画详解
2016/10/20 Javascript
jQuery响应滚动条事件功能示例
2017/10/14 jQuery
微信小程序-API接口安全详解
2019/07/16 Javascript
python 采集中文乱码问题的完美解决方法
2016/09/27 Python
解决python中无法自动补全代码的问题
2018/12/04 Python
使用python爬取抖音视频列表信息
2019/07/15 Python
Python生成个性签名图片获取GUI过程解析
2019/12/16 Python
Python3 利用face_recognition实现人脸识别的方法
2020/03/13 Python
ITK 实现多张图像转成单个nii.gz或mha文件案例
2020/07/01 Python
CSS3实现粒子旋转伸缩加载动画
2016/04/22 HTML / CSS
自荐书范文
2013/12/08 职场文书
爱国主义演讲稿
2014/05/07 职场文书
音乐学专业求职信
2014/07/22 职场文书
十一国庆节“向国旗敬礼”主题班会活动方案
2014/09/27 职场文书
党员剖析材料范文
2014/09/30 职场文书
作风整顿剖析材料
2014/09/30 职场文书
重阳节慰问信
2015/02/15 职场文书
小学一年级班主任工作经验交流材料
2015/11/02 职场文书
2016暑期政治学习心得体会
2016/01/23 职场文书
pandas中DataFrame重置索引的几种方法
2021/05/24 Python
Nginx+Windows搭建域名访问环境的操作方法
2022/03/17 Servers
Python万能模板案例之matplotlib绘制直方图的基本配置
2022/04/13 Python