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条件判断使用小技巧总结
Sep 08 Javascript
Js 刷新框架页的代码
Apr 13 Javascript
extjs tabpanel限制选项卡数量实现思路及代码
Apr 02 Javascript
jQuery当鼠标悬停时放大图片的效果实例
Jul 03 Javascript
jQuery带进度条全屏图片轮播特效代码分享
Jun 28 Javascript
jQuery验证插件validate使用方法详解
Sep 13 Javascript
jQuery实现边框动态效果的实例代码
Sep 23 Javascript
微信小程序  wx.request合法域名配置详解
Nov 23 Javascript
Vue组件实例间的直接访问实现代码
Aug 20 Javascript
vue.js 实现点击按钮动态添加li的方法
Sep 07 Javascript
如何解决.vue文件url引用文件的问题
Jan 18 Javascript
JavaScript声明变量和数据类型的转换
Apr 12 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 STRING 陷阱原理说明
2010/07/24 PHP
CI框架表单验证实例详解
2016/11/21 PHP
取得一定长度的内容,处理中文
2006/12/20 Javascript
让Firefox支持event对象实现代码
2009/11/07 Javascript
用jquery实现的模拟QQ邮箱里的收件人选取及其他效果(一)
2011/01/06 Javascript
js获取input标签的输入值实现代码
2013/08/05 Javascript
javascript 获取图片尺寸及放大图片
2013/09/04 Javascript
浅析Cookie中的Path与domain
2013/12/18 Javascript
JavaScript清空数组元素的两种方法简单比较
2015/07/10 Javascript
理解javascript闭包
2015/12/15 Javascript
基于JavaScript实现跳转提示页面
2016/09/24 Javascript
jQuery编写设置和获取颜色的插件
2017/01/09 Javascript
Vue数据驱动模拟实现5
2017/01/13 Javascript
Textarea输入字数限制实例(兼容iOS&安卓)
2017/07/06 Javascript
Angular父组件调用子组件的方法
2018/04/02 Javascript
微信小程序点击图片实现长按预览、保存、识别带参数二维码、转发等功能
2019/07/20 Javascript
解决LayUI加上form.render()下拉框和单选以及复选框不出来的问题
2019/09/27 Javascript
简单了解前端渐进式框架VUE
2020/07/20 Javascript
[01:38]DOTA2辉夜杯 欢乐的观众现场采访
2015/12/26 DOTA
Python使用matplotlib简单绘图示例
2018/02/01 Python
python保存数据到本地文件的方法
2018/06/23 Python
详解Python3网络爬虫(二):利用urllib.urlopen向有道翻译发送数据获得翻译结果
2019/05/07 Python
Python实现计算文件MD5和SHA1的方法示例
2019/06/11 Python
pycharm 安装JPype的教程
2019/08/08 Python
基于python检查矩阵计算结果
2020/05/21 Python
Python turtle库的画笔控制说明
2020/06/28 Python
Python如何操作docker redis过程解析
2020/08/10 Python
使用HTML5 Canvas API绘制弧线的教程
2016/03/22 HTML / CSS
html5借用repeating-linear-gradient实现一把刻度尺(ruler)
2019/09/09 HTML / CSS
POS解决方案:MUNBYN(热敏打印机、条形码扫描仪)
2020/06/09 全球购物
网络专业学生个人的自我评价
2013/12/16 职场文书
市场营销工作计划书
2014/05/06 职场文书
护士求职信范文
2014/05/24 职场文书
2015年园林绿化工作总结
2015/05/23 职场文书
2015年国庆节演讲稿范文
2015/07/30 职场文书
mysql 索引合并的使用
2021/08/30 MySQL