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 相关文章推荐
javascript学习基础笔记之DOM对象操作
Nov 03 Javascript
当自定义数据属性为json格式字符串时jQuery的data api问题探讨
Feb 18 Javascript
JavaScript实现拖拽网页内元素的方法
Apr 15 Javascript
Javascript中字符串replace方法的第二个参数探究
Dec 05 Javascript
JQuery中Ajax的操作完整例子
Mar 07 Javascript
原生js实现放大镜特效
Mar 08 Javascript
移动端触屏幻灯片图片切换插件idangerous swiper.js
Apr 10 Javascript
JS+html5实现异步上传图片显示上传文件进度条功能示例
Nov 09 Javascript
Websocket 向指定用户发消息的方法
Jan 09 Javascript
Vue作用域插槽实现方法及作用详解
Jul 08 Javascript
解决vscode进行vue格式化,会自动补分号和双引号的问题
Oct 26 Javascript
如何利用JavaScript编写一个格斗小游戏
Jan 06 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截取中文字符串的问题
2006/07/12 PHP
一个多文件上传的例子(原创)
2006/10/09 PHP
PHP中for与foreach的区别分析
2011/03/09 PHP
PHP设计模式之适配器模式代码实例
2015/05/11 PHP
PHP简单实现无限级分类的方法
2016/05/13 PHP
yum命令安装php7和相关扩展
2016/07/04 PHP
学习并汇集javascript匿名函数
2010/11/25 Javascript
jquery maxlength使用说明
2011/09/09 Javascript
JQGrid的用法解析(列编辑,添加行,删除行)
2013/11/08 Javascript
JavaScript对内存分配及管理机制详细解析
2013/11/11 Javascript
JavaScript实现的简单幂函数实例
2015/04/17 Javascript
jquery Validation表单验证使用详解
2020/09/12 Javascript
jquery通过name属性取值的简单实现方法
2016/06/20 Javascript
AngularJS 路由和模板实例及路由地址简化方法(必看)
2016/06/24 Javascript
实例讲解JavaScript中call、apply、bind方法的异同
2016/09/13 Javascript
Node.js连接postgreSQL并进行数据操作
2016/12/18 Javascript
[原创]SyntaxHighlighter自动识别并加载脚本语言
2017/02/07 Javascript
Vue.js render方法使用详解
2017/04/05 Javascript
Angular中ng-bind和ng-model的区别实例详解
2017/04/10 Javascript
vue-cli+webpack项目 修改项目名称的方法
2018/02/28 Javascript
react配合antd组件实现的管理系统示例代码
2018/04/24 Javascript
Node.js使用Angular简单示例
2018/05/11 Javascript
React.js绑定this的5种方法(小结)
2018/06/05 Javascript
详解Node.js读写中文内容文件操作
2018/10/10 Javascript
JS实现带阴历的日历功能详解
2019/01/24 Javascript
python创建线程示例
2014/05/06 Python
Python中编写ORM框架的入门指引
2015/04/29 Python
python实现员工管理系统
2018/01/11 Python
详解使用Python下载文件的几种方法
2019/10/13 Python
享誉全球的多元化时尚精品购物平台:Farfetch发发奇(支持中文)
2017/08/08 全球购物
微软中国官方商城:Microsoft Store中国
2018/10/12 全球购物
求职简历自荐信
2013/10/20 职场文书
婚内房产协议书范本
2014/10/02 职场文书
2016入党积极分子党校培训心得体会
2016/01/06 职场文书
gateway网关接口请求的校验方式
2021/07/15 Java/Android
bat批处理之字符串操作的实现
2022/03/16 Python