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 相关文章推荐
基于JQuery的cookie插件
Apr 07 Javascript
jQuery点击弹出下拉菜单的小例子
Aug 01 Javascript
seaJs的模块定义和模块加载浅析
Jun 06 Javascript
JavaScript strike方法入门实例(给字符串加上删除线)
Oct 17 Javascript
在localStorage中存储对象数组并读取的方法
Sep 24 Javascript
Vue开发实现吸顶效果的示例代码
Aug 21 Javascript
vue.js自定义组件directives的实例代码
Nov 09 Javascript
vue-better-scroll 的使用实例代码详解
Dec 03 Javascript
基于Vue SEO的四种方案(小结)
Jul 01 Javascript
JavaScript判断数组类型的方法
Oct 23 Javascript
js实现幻灯片轮播图
Aug 14 Javascript
javascript实现数字时钟效果
Feb 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
雄兵连三大错觉:凯莎没了,凉冰阵亡了,华烨觉得自己又行了
2020/04/09 国漫
使用PHPExcel操作Excel用法实例分析
2015/03/26 PHP
php中替换字符串函数strtr()和str_repalce()的用法与区别
2016/11/25 PHP
php+redis实现商城秒杀功能
2020/11/19 PHP
PHP基于session.upload_progress 实现文件上传进度显示功能详解
2019/08/09 PHP
Docker 安装 PHP并与Nginx的部署实例讲解
2021/02/27 PHP
JavaScript 判断指定字符串是否为有效数字
2010/05/11 Javascript
简约JS日历控件 实例代码
2013/07/12 Javascript
js截取固定长度的中英文字符的简单实例
2013/11/22 Javascript
21个值得收藏的Javascript技巧
2014/02/04 Javascript
javascript获取web应用根目录的方法
2014/02/12 Javascript
jQuery学习笔记之Ajax用法实例详解
2015/12/01 Javascript
微信JS-SDK选取手机照片上传功能
2017/04/21 Javascript
老生常谈js-react组件生命周期
2017/05/02 Javascript
vue中的ref和$refs的使用
2018/11/22 Javascript
如何自定义微信小程序tabbar上边框的颜色
2019/07/09 Javascript
HTML+JavaScript实现扫雷小游戏
2019/09/30 Javascript
JS+DIV实现拖动效果
2020/02/11 Javascript
js实现简单五子棋游戏
2020/05/28 Javascript
Python中AND、OR的一个使用小技巧
2015/02/18 Python
在Python的Flask框架下使用sqlalchemy库的简单教程
2015/04/09 Python
Python跨文件全局变量的实现方法示例
2017/12/10 Python
Keras 快速解决OOM超内存的问题
2020/06/11 Python
CSS实现鼠标滑过鼠标点击代码写法
2016/12/26 HTML / CSS
详解如何将 Canvas 绘制过程转为视频
2021/01/25 HTML / CSS
女孩每月服装订阅盒:kidpik
2019/04/17 全球购物
美体小铺印度官网:The Body Shop印度
2019/10/17 全球购物
美国农场商店:Blain’s Farm & Fleet
2020/01/17 全球购物
请说出以下代码输出什么
2013/08/30 面试题
酒店个人培训自我鉴定
2013/12/11 职场文书
医药营销个人求职信
2014/04/12 职场文书
2016小学教师读书心得体会
2016/01/13 职场文书
党员观看《筑梦中国》心得体会
2016/01/18 职场文书
pytorch中的model=model.to(device)使用说明
2021/05/24 Python
OpenCV实现反阈值二值化
2021/11/17 Java/Android
Linux中一对多配置日志服务器的详细步骤
2022/07/23 Servers