javaScript对象-基本包装类型的详解

本人按书上的内容大致地把javaScript对象划分成“引用类型”、“基本包装类型”和“内置对象”三块内容。
我们这篇先了解下基本包装类型的详细用法吧!
一、我们先解下相关概念:
1、引用类型的值(对象)是一个引用类型的一个实例。
在ECMAScript中,引用类型是一种数据结构,用于将数据和功能组织在一起。它也通常称为类。
尽管ECMASript中,从技术上讲是一门面向对象的语言,但它不具备传统的面向对象语言所支持的类和接口等基本结构。引用类型有时候也被称为对象定义,因为它们描述是一类对象所具有的属性和方法。
为了便于操作基本数据类型,ECMAScript还提供了3个特殊的引用数据类型:Boolean、Number和String。
在实际中我们每读取一个基本数据值的时候,后台就会创建一个对应的基本包装类型对象,从而让我们能够调用一些方法操作这些数据。
如以下示例:
var s1 = "some text";
var s2 = s1.substring(2);
猜猜后台会做什么样的事情,走,我们一起来看看:
1、String类型的一个实例;
2、在实例中调用指定的方法;
3、销毁这个实例。
可以将以上三个步骤想像成是执行以下ECMAStript代码。
var s1 = new String("some text");
var s2 = s1.substring(2);
s1 = null;
引用类型与基本包装类型的区别:
它们的对象生命周期不同:
- 引用类型:使用new创建引用类型的实例,在执行数据流离开当前作用域时会一直存储在内存中。
- 基本包装类型:自动创建基本包装类型的对象,只执行一行代码的瞬间之后就会立即销毁。
这意味着在运行时为基本包装类型值添加属性和方法是无效的。
二、走起,一起学习下基本包装类型的详细用法。
1、boolean 布尔对象类型
boolean对象用于转换一个不是Boolean类型的值转换为Boolean类型值(true或者false)。
1.1 创建Boolean对象
boolean对象代表两个值:“true”或者"false"
下面的代码定义了一个名为myBoolean的布尔对象
var myBoolean = new Boolean ();
如果布尔对象无初始值或者其值为:
- 0
- -0
- null
- ""
- false
- undefined
- NaN
那么对象的值为false.否则,其值为true(即使当自变量为字符串"false"时)!
1.2 boolean对象属性
1.2.1 constructor属性
语法:
boolean.constructor
定义和用法:
constructor属性返回创建布尔对象的函数原型(即返回创建此对象的boolean函数的引用)。
相关示例:
返回通过myvar对象的原型创建的函数:
var myvar = new boolean(1);
myvar.constructor;
结果输出:
function Boolean (){ [native code]}
1.2.2 boolean prototype构造器
语法:
Boolean.prototype.name=value;
定义和用法:
prototypen属性使您有能力向对象添加属性和方法。
当构造一个原型,所有的布尔对象默认都添加属性或方法。
注意:Boolean.prototype不是引用布尔值,但Boolean()对象是。
注意: Prototype是一个全局属性,这对于几乎全部的javaScript对象。
相关示例:
Boolean.prototype.myColor=function ()
{
if (this.valueof()==true)
{
this.color="green";
} else
{
this.color="red";
}
}
创建一个Boolean对象,并添加myColor方法:
var a = new Boolean(1);
a.,yColor();
var b=a.color;
结果输出:
green
1.3 boolean对象方法
1.3.1 toString()方法
语法:
boolean.toString()
定义和用法:
toString() 方法可把一个逻辑值转换为字符串,并返回结果(true或false)。
注意:当需要把boolean对象转换成字符串的情况,javaScript会自动调用此方法。
1.3.2 valueOf()方法
语法:
boolean.valueOf()
定义和用法:
valueOf()方法可返回Boolean对象的原始值(true 或 false)。
相关示例:
返回Boolean 对象的原始值:
var bool = new Boolean (0).
var myvar = bool.valueOf();
myvar输出结果:
false
2、number 数字对象类型
Number对象是原始数值的包装对象。
Number创建方式 new Number().
语法:
var num = new Number(value);
2.1 number对象属性
2.1.1 constructor属性
语法:
number.constructor;
定义和用法:
constructor属性返回创建此对象的boolean函数的引用.
相关示例:
返回对创建此对象的number函数的引用:
num.constructor;
输出结果:
function Number () {[native code]}
2.1.2 MAX_VALUE属性
语法:
Number.MAX_VALUE;
定义和用法
MAX_VALUE属性是javaScript中可表示的最大的的数。
它的近似值为1.7976931348623157 x 10308。
注意:大于MAX_VALUE的数表示无穷大。
相关示例:
示例1
返回javaScript中的最大的数:
Number.MAX_VALUE;
返回值:
1.7976931348623157e+308
由于MAX_VALUE为Number对象的属性,所以可以使用Number.MAX_VALUE调用。
使用自己创建的xNumber对象(x.MAX_VALUE)将无法获取。
示例2
MAX_VALUE是javaScript Number对象的静态属性,只能通过Number.MAX_VALUE调用。
使用自定义的Numberx(x.MAX_VALUE)将无法获取MAX_VALUE属性;
var x = 100;
x.MAX_VALUE;
x输出结果:
undefined
3、string 字符串对象类型
javaScript对象-基本包装类型的详解的更多相关文章
- JavaScript引用类型之Array类型API详解
Array类型也是ECMASCRIPT中最常见的数据类型,而且数据的每一项可以保存任何类型的数值,而且数组的大小是可以动态调整的,可以随着数据的添加自动增长以容纳新的数据.下面,总结数据的一些常用方法 ...
- JS类型转换规则详解
JS类型转换规则详解 一.总结 一句话总结:JS强制类型转换中的类型名强制类型转换和其它语言不同,是类型类的构造方法,Number(mix) 一句话总结(JS类型本质):因为js是弱类型语言,所以它相 ...
- JavaScript调试技巧之console.log()详解
JavaScript调试技巧之console.log()详解 对于JavaScript程序的调试,相比于alert(),使用console.log()是一种更好的方式,原因在于:alert()函数会阻 ...
- 转: javascript模块加载框架seajs详解
javascript模块加载框架seajs详解 SeaJS是一个遵循commonJS规范的javascript模块加载框架,可以实现javascript的模块化开发和模块化加载(模块可按需加载或全部加 ...
- JavaScript中的鼠标滚轮事件详解
JavaScript中的鼠标滚轮事件详解/*Firefox注册事件*/ ~~~Firefox: addEventListener('DOMMouseScroll', handler, false)if ...
- JavaScript的基本包装类型概述与基本包装类型_Number类型
JavaScript的基本包装类型示例 为了便于操作基本类型值,javaScript 提供了 3 个特殊的引用类型:Boolean.Number和 String. 这些类型与其他引用类型相似,但同时也 ...
- C#类、对象、方法和属性详解
C#类.对象.方法和属性详解 一.相关概念: 1.对象:现实世界中的实体(世间万物皆对象) 2.类:具有相似属性和方法的对象的集合 3.面向对象程序设计的特点:封装 继承 多态 4.对象的三要素:属性 ...
- 《手把手教你》系列技巧篇(四十)-java+ selenium自动化测试-JavaScript的调用执行-下篇(详解教程)
1.简介 在实际工作中,我们需要对处理的元素进行高亮显示,或者有时候为了看清楚做跟踪鼠标点击了哪些元素需要标记出来.今天宏哥就在这里把这种测试场景讲解和分享一下. 2.用法 创建一个执行 JS 的对象 ...
- Scala 深入浅出实战经典 第54讲:Scala中复合类型实战详解
王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-64讲)完整视频.PPT.代码下载:百度云盘:http://pan.baidu.com/s/1c0noOt6 ...
随机推荐
- 你从未知道如此强大的ASP.NET MVC DefaultModelBinder
看到很多ASP.NET MVC项目还在从request.querystring或者formContext里面获取数据,这实在是非常落后的做法.也有的项目建了大量的自定义的modelbinder,以为很 ...
- 微信小程序开发初探
一.关于微信小程序 1.1 小程序诞生的背景 张小龙说道: (1)一切以用户价值为依归→用户是微信的核心,所以微信中没有很多与客户无关的功能,比如QQ中的乱七八糟一系列东西. (2)让创造发挥价值→所 ...
- 网站的SEO以及它和站长工具的之间秘密
博客迁移没有注意 URL 地址的变化,导致百度和 google 这两只爬虫引擎短时间内找不到路.近段时间研究了下国内最大搜索引擎百度和国际最大搜索引擎google的站长工具,说下感受. 百度的站长工具 ...
- .NET中使用Redis (二)
很久以前写了一篇文章 .NET中使用Redis 介绍了如何安装Redis服务端,以及如何在.NET中调用Redis读取数据.本文简单介绍如何设计NoSQL数据库,以及如何使用Redis来存储对象. 和 ...
- CS Coder学习asp.net5个月的最大感悟:从http的角度重新认识asp.net(二)——我理解的ajax(二)
啊哈,时隔两个月,才开始写上一篇文章的后续,实在是惭愧.主要是年尾公司又来活了,忙得团团转,而且这段时间在自学mvc.我在上文中,提到过我对mvc框架的初步印象是:相比webform,算是回归了bs本 ...
- ASP.NET MVC 视图(五)
ASP.NET MVC 视图(五) 前言 上篇讲解了视图中的分段概念.和分部视图的使用,本篇将会对Razor的基础语法简洁的说明一下,前面的很多篇幅中都有涉及到视图的调用,其中用了很多视图辅助器,也就 ...
- direction和unicode-bidi
在做多语言页面,接触过阿利伯语.希伯来语的同学肯定了解书写方向的重要性,包括我们五四运动前的书写顺序也是从右到左的.css中 unicode-bidi和direction属性决定了HTML或XML文字 ...
- 总结项目开发中用到的一些css\html技巧
这篇就是用来总结记录的,会长期更新. 1,半透明背景效果(#ffffff颜色的半透明背景): font-style: italic;">#ffffff; filter:alpha(op ...
- 如何优雅地使用Sublime Text
Sublime Text:一款具有代码高亮.语法提示.自动完成且反应快速的编辑器软件,不仅具有华丽的界面,还支持插件扩展机制,用她来写代码,绝对是一种享受.相比于难于上手的Vim,浮肿沉重的Eclip ...
- .net erp(办公oa)开发平台架构之流程服务概要介绍
背景 搭建一个适合公司erp业务的开发平台. 架构概要图: 流程引擎开发平台: 包含流程引擎设计器,流程管理平台,流程引擎服务.目前只使用单个数据库进行管理. 流程引擎设计器 采用silve ...