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 相关文章推荐
textarea的value是html文件源代码,存成html文件的代码
Apr 20 Javascript
改变javascript函数内部this指针指向的三种方法
Apr 23 Javascript
javaScript 利用闭包模拟对象的私有属性
Dec 29 Javascript
jQuery 自定义函数写法分享
Mar 30 Javascript
jQuery动画效果-slideUp slideDown上下滑动示例代码
Aug 28 Javascript
各种常用的JS函数整理
Oct 25 Javascript
JS实现黑色大气的二级导航菜单效果
Sep 18 Javascript
41个Web开发者必须收藏的JavaScript实用技巧
Jul 22 Javascript
jQuery.parseHTML() 函数详解
Jan 09 Javascript
React-Native中禁用Navigator手势返回的示例代码
Sep 09 Javascript
详解easyui 切换主题皮肤
Apr 04 Javascript
超简单的微信小程序轮播图
Nov 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获取地址栏信息的代码
2008/10/08 PHP
解析如何屏蔽php中的phpinfo()函数
2013/06/06 PHP
php的SimpleXML方法读写XML接口文件实例解析
2014/06/16 PHP
阻止JavaScript事件冒泡传递(cancelBubble 、stopPropagation)
2007/05/08 Javascript
JS面向对象编程之对象使用分析
2010/08/19 Javascript
JS文本框不能输入空格验证方法
2013/03/19 Javascript
Ext JS框架中日期函数的用法及日期选择控件的实现
2016/05/21 Javascript
Javascript函数中的arguments.callee用法实例分析
2016/09/16 Javascript
表单元素值获取方式js及java方式的简单实例
2016/10/15 Javascript
谈谈JS中常遇到的浏览器兼容问题和解决方法
2016/12/17 Javascript
BootStrap表单宽度设置方法
2017/03/10 Javascript
在vue-cli项目中使用bootstrap的方法示例
2018/04/21 Javascript
Webpack中publicPath路径问题详解
2018/05/03 Javascript
JS打印彩色菱形的实例代码
2018/08/15 Javascript
小程序选项卡以及swiper套用(跨页面)
2020/06/19 Javascript
Vue scoped及deep使用方法解析
2020/08/01 Javascript
vue 获取到数据但却渲染不到页面上的解决方法
2020/11/19 Vue.js
原生js实现滑块区间组件
2021/01/20 Javascript
[01:28:56]2014 DOTA2华西杯精英邀请赛 5 24 CIS VS DK
2014/05/26 DOTA
Python中模拟enum枚举类型的5种方法分享
2014/11/22 Python
Python中给List添加元素的4种方法分享
2014/11/28 Python
日常整理python执行系统命令的常见方法(全)
2015/10/22 Python
Python模拟登陆淘宝并统计淘宝消费情况的代码实例分享
2016/07/04 Python
Python字典数据对象拆分的简单实现方法
2017/12/05 Python
Python使用Matplotlib实现Logos设计代码
2017/12/25 Python
Python如何实现小程序 无限求和平均
2020/02/18 Python
python中最小二乘法详细讲解
2021/02/19 Python
html特殊符号示例 html特殊字符编码对照表
2014/01/14 HTML / CSS
台湾乐天市场:日本No.1的网路购物网站
2017/03/22 全球购物
BIFFI美国站:意大利BIFFI BOUTIQUES豪华多品牌时装零售公司
2020/02/11 全球购物
实习指导老师评语
2014/04/26 职场文书
研究生学习计划书应该怎么写?
2019/09/10 职场文书
PHP对接阿里云虚拟号的实现(号码隐私保护)
2021/04/06 PHP
原生JS中应该禁止出现的写法
2021/05/05 Javascript
Win10 和 Win11可以共存吗? win10/11产品生命周期/服务更新介绍
2021/11/21 数码科技
阿里云ECS云服务器快照的概念以及如何使用
2022/04/21 Servers