基本包装类型

为了便于操作基本类型值,ECMAScript定义了3个特殊的引用类型Boolean,Number和String。这些类型与本章介绍的其他用类型相似,同时也具备与各自的基本类型相应的特殊行为

实际上,每当读取一个基本类型值得时候,后台就会创建一个对应的基本包装类型的对象,让我们能调用一些方法操作这些数据

var s1="some text";

var s2=s1.substring(2);

s1是基本类型值,第二行调用了substring()方法,并将返回值保存在s2中

相当于在后台调用了三个步骤:

1创建String类型的一个实例;

2在实例上调用指定的方法

3销毁这个实例

var s1=new String("some text");

var s2=s1.substring(2);

s1=null

引用类型与基本包装类型的主要区别就是对象的生存期,引用类型的实例在执行流停留当前作用域时一直保存在内存中,而自动创建的基本包装类型只存在于一行代码执行的瞬间,然后立即被销毁

这意味着我们不能在运行时为基本类型值添加属性和方法

var s1="some text";

s1.color="red";

alert(s1.color);  //undefined

基本包装类型必要时再使用

对基本包装类型的实例调用typeOf会返回"object",而且所有基本包装类型的对象都会被转换为布尔值true

Object构造函数根据传入值的类型返回相应的基本包装类型的实例

var obj=new Object("some text");

alert(obj instanceof String);  //true

把字符串传给Object构造函数,就会创建String实例,传入数值就回创建Number实例;传入布尔值就回创建Boolean实例

要注意的是使用new调用基本类型的构造函数与直接调用同名的转型函数是不一样的

var value="25";

var number=Number(value);  //转型函数

alert(typeof number);  //"number"

var obj=new Number(value);  //构造函数

alert(typeof obj);  //"object"

Boolean类型

Boolean类型是与布尔值对应的引用类型,调用并传入true或者false

var booleanObject=new Boolean(true);

Boolean类型的实例重写了valueOf()方法,返回基本类型值true或false,重写了toString()方法,返回字符串"true"和"false"

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

JavaScript高级程序设计8.pdf的更多相关文章

  1. JavaScript高级程序设计61.pdf

    JSON对象 早期的JSON解析器就是使用JavaScript的eval()函数,ECMAScript5对解析JSON的行为做出了规定,定义了全局对象JSON. JSON对象有2个方法:stringi ...

  2. JavaScript高级程序设计60.pdf

    错误处理 try-catch语句 try{ //可能会导致错误的代码 }catch(error){ //在错误发生时如何处理 } error是一个包含着错误信息的对象,它有一个message属性,保存 ...

  3. JavaScript高级程序设计58.pdf

    15章 使用Canvas绘图 略 16章 HTML5脚本编程 HTML5规范了新的HTML标记和JavaScript API,以便简化创建动态Web界面的工作 跨文档消息传递 简称XDM,指来自不同域 ...

  4. JavaScript高级程序设计57.pdf

    表单序列化 首先了解一下浏览器如何将数据发送给服务器 对表单字段的名称和值进行URL编码,使用和号(&)分隔 不发送禁用的表单字段 只发送勾选的复选框和单选按钮 不发送type为“reset” ...

  5. JavaScript高级程序设计55.pdf

    输入模式 HTML5为文本字段新增了pattern属性,这个属性的值是一个正则表达式,用于匹配文本框中的值 例如,只想在允许在文本字段中输入数值 <input type="text&q ...

  6. JavaScript高级程序设计54.pdf

    过滤输入 对于一些浏览器,可以使用正则表达式里的text()测试用户按下的按键,Firefox和safari(3.1版本之前)会对向上向下.退格键和删除键触发keypress事件,在Firefox中, ...

  7. JavaScript高级程序设计53.pdf

    共有的表单字段方法 每个表单字段都有两个方法:focus()和blur(),其中focus()用于将浏览器焦点设置到表单字段,激活表单字段.可以侦听页面的load事件 EventUtil.addHan ...

  8. JavaScript高级程序设计52.pdf

    表单脚本 表单的基础知识 在HTML中,表单是由<form>元素表示的,在Javascript对应的是HTMLFormElement类型,它继承自HTMLElement,因此具有与其他HT ...

  9. JavaScript高级程序设计50.pdf

    hashchange事件 HTML5新增了hashchange事件,以便在URL的参数列表(及URL中“#”号后面的所有字符串)发生变化时通知开发人员,之所以新增这个事件,是因为在Ajax应用中,开发 ...

  10. JavaScript高级程序设计49.pdf

    HTML5事件 contextmenu事件 contextmenu事件是冒泡的,可以将事件处理程序指定到document,这个事件的目标是用户操作的元素,在兼容DOM的浏览器中使用event.prev ...

随机推荐

  1. 国内最简单的短视频SDK

    最近阿里百川和趣拍一起合作推出了一个短视频SDK.之前很多厂商可能都是用的Vitamio的短视频SDK.之后我考察过,也做过一些调查,发现Vitamio真的奇贵无比,屌丝公司根本用不起,阿里和趣拍这下 ...

  2. sql server split函数

    --创建分割函数CREATE FUNCTION dbo.Split(@String varchar(8000),@Delimiter char(1))returns @temptable TABLE ...

  3. 2.RABBITMQ 入门 - WINDOWS - 生产和消费消息 一个完整案例

    关于安装和配置,见上一篇 1.RABBITMQ 入门 - WINDOWS - 获取,安装,配置 公司有需求,要求使用winform开发这个东西(消息中间件),另外还要求开发一个日志中间件,但是也是要求 ...

  4. 一款jquery小插件:实现轻松获取和绑定编辑表单的值(带源码)

    实现目的:通常在项目中,编辑页面在前后台需要一个一个框赋值,取值操作,小伙伴们普遍都会感觉繁琐,麻烦.: 实现思路:利用json对象化键值的思想: 好处:方便快速开发,提高开发效率,减少重复性代码: ...

  5. C#转Python计划

    1.学习python语法,完成python_cookbook上的代码. 目标:熟悉python语法和开发习惯,以及调试方法. 2.学习使用Django框架,完成一个基于Django框架的项目,发布到g ...

  6. iOS多Targets管理

    序言: 个人不善于写东西,就直奔主题了. 其实今天会注意到多targets这个东西,是因为在学习一个第三方库FBMemoryProfiler的时候,用到了,所以就搜索了一些相关资料,就在这里记录一下. ...

  7. ios后台程序持续运行方法

    iOS系统的资源是有限的,应用程序在前台和在后台的状态是不一样的.在后台时,程序会受到系统的很多限制,这样可以提高电池的使用和用户体验.但是有很多社交类的软件,如果因为它在后台就不能刷新到新的数据的话 ...

  8. mysql 链接数据库

    一.MySQL 连接本地数据库,用户名为“root”,密码“root”(注意:“-p”和“root” 之间不能有空格) C:\>mysql -h localhost -u root -proot ...

  9. grub2 使用memdisk工具 启动任意iso

    root@zhanghua-Inspiron-:/home/zhanghua# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/sda6 60G 12G 46G 21% / none ...

  10. CentOS 6.4 64位 搭建MySQL-Cluster 7.3.8 集群

    准备:1.下载 MySQL-Cluster-gpl-7.3.8-1.el6.x86_64.rpm-bundle.tar 下载地址: http://mirrors.sohu.com/mysql/MySQ ...