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 相关文章推荐
出现“不能执行已释放的Script代码”错误的原因及解决办法
Aug 29 Javascript
JQuery的ajax基础上的超强GridView展示
Sep 18 Javascript
JavaScript 面向对象编程(1) 基础
May 18 Javascript
分别用marquee和div+js实现首尾相连循环滚动效果,仅3行代码
Sep 21 Javascript
基于JQuery的类似新浪微博展示信息效果的代码
Jul 23 Javascript
JQuery对表单元素的基本操作使用总结
Jul 18 Javascript
JavaScript日期类型的一些用法介绍
Mar 02 Javascript
JavaScript实现简易的天数计算器实例【附demo源码下载】
Jan 18 Javascript
Angular 通过注入 $location 获取与修改当前页面URL的实例
May 31 Javascript
对于js垃圾回收机制的理解
Sep 14 Javascript
vue基础之模板和过滤器用法实例分析
Mar 12 Javascript
npm 语义版本控制详解
Sep 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加MYSQL服务器
2006/10/09 PHP
PHP将Excel导入数据库及数据库数据导出至Excel的方法
2015/06/24 PHP
详解PHP的Yii框架中的Controller控制器
2016/03/29 PHP
PHP数据库操作四:mongodb用法分析
2017/08/16 PHP
弹出模态框modal的实现方法及实例
2017/09/19 PHP
PHP+MariaDB数据库操作基本技巧备忘总结
2018/05/21 PHP
PHP面向对象程序设计之多态性的应用示例
2018/12/19 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
2019/11/14 PHP
jquery中常用的SET和GET
2009/01/13 Javascript
jQuery 性能优化指南 (1)
2009/05/21 Javascript
jquery的ajax和getJson跨域获取json数据的实现方法
2014/02/04 Javascript
ExtJS判断IE浏览器类型的方法
2014/02/10 Javascript
node.js中的fs.close方法使用说明
2014/12/17 Javascript
javascript中返回顶部按钮的实现
2015/05/05 Javascript
jQuery简单获取键盘事件的方法
2016/01/22 Javascript
Bootstrap表单布局
2016/07/19 Javascript
ng-options和ng-checked在表单中的高级运用(推荐)
2017/01/21 Javascript
JavaScript中的回调函数实例讲解
2019/01/27 Javascript
详解三种方式在React中解决绑定this的作用域问题并传参
2020/08/18 Javascript
python模拟登录百度代码分享(获取百度贴吧等级)
2013/12/27 Python
python+tkinter编写电脑桌面放大镜程序实例代码
2018/01/16 Python
Django框架HttpResponse对象用法实例分析
2019/11/01 Python
python从内存地址上加载python对象过程详解
2020/01/08 Python
详解PyQt5中textBrowser显示print语句输出的简单方法
2020/08/07 Python
使用HTML和CSS实现的标签云效果(附demo)
2021/02/03 HTML / CSS
港湾网络笔试题
2014/04/19 面试题
中秋节超市促销方案
2014/01/30 职场文书
运动会稿件200字
2014/02/07 职场文书
甘南现象心得体会
2014/09/11 职场文书
2014年小学辅导员工作总结
2014/12/23 职场文书
离婚起诉书范文2015
2015/05/19 职场文书
运动会3000米加油稿
2015/07/21 职场文书
《思路决定出路》读后感3篇
2019/12/11 职场文书
Html5生成验证码的示例代码
2021/05/10 Javascript
PyTorch 如何设置随机数种子使结果可复现
2021/05/12 Python
python模拟浏览器 使用selenium进入好友QQ空间并留言
2022/04/12 Python