JavaScript基本包装类型:Boolean, Number, String
需积分: 0 76 浏览量
更新于2024-08-05
收藏 270KB PDF 举报
"第13章 基本包装类型1"
在JavaScript中,基本包装类型是用于操作基本数据类型(如Boolean、Number和String)的特殊引用类型。这些类型使得我们可以对基本类型值进行一些面向对象的操作,尽管它们本质上是非对象。基本包装类型包括Boolean、Number和String,它们在需要时会被隐式创建,以便调用方法或访问属性。
一.基本包装类型概述
当读取一个基本类型值时,JavaScript会临时创建一个相应的基本包装类型的实例,这样就可以调用该类型的某些方法。例如,即使'Mr.Lee'是一个字符串字面量,我们依然可以调用其substring()方法来截取字符串。不过,这种临时对象会在使用后立即被销毁,因此直接在字面量上设置属性或方法通常是无效的,如`box.name`和`box.age`。
1. 字面量写法:
在这个例子中,我们创建了一个字符串`box`,然后尝试给它添加属性和方法,如`name`和`age`。尽管在输出`box`时仍能看到原始的字符串,但尝试访问添加的属性或方法将会返回`undefined`或抛出错误,因为这些操作对于基本类型来说是无效的。
```javascript
var box = 'Mr.Lee'; // 字面量
box.name = 'Lee'; // 无效属性
box.age = function() {
return 100;
}; // 无效方法
```
2. `new`运算符写法:
使用`new`关键字,我们可以显式地创建一个基本包装类型的实例。这样,我们可以为对象添加属性和方法,就像处理任何其他对象一样。
```javascript
var box = new String('Mr.Lee'); // new运算符
box.name = 'Lee'; // 有效属性
box.age = function() {
return 100;
}; // 有效方法
```
在这个示例中,`new String('Mr.Lee')`创建了一个String对象,所以我们能够为其添加属性和方法,并且能够正常访问它们。
二.Boolean类型
Boolean类型有两个值:`true`和`false`。在使用`new`运算符创建Boolean对象时,可以将任何值转换为布尔值。例如:
```javascript
var flag = new Boolean(0); // false
var exists = new Boolean(' '); // true
```
这里的0被视为假(false),而非空字符串被视为真(true)。
三.Number类型
Number类型用于表示数值。JavaScript提供了多种数学操作符,如加法(+)、减法(-)、乘法(*)、除法(/)和模运算(%)。此外,还可以使用`Number`构造函数来创建Number对象,进行数值转换:
```javascript
var num = new Number(123); // 创建Number对象
num.toFixed(2); // 返回带有指定小数位数的数字字符串
```
四.String类型
String类型用于表示文本。字符串是不可变的,这意味着一旦创建,就不能改变。可以使用`String`构造函数或字面量创建字符串,并调用各种字符串方法,如`length`、`charAt()`、`substring()`等:
```javascript
var str = new String('Hello, World!'); // 创建String对象
var length = str.length; // 获取字符串长度
var substr = str.substring(7); // 截取子字符串
```
基本包装类型提供了一种方式,让我们能够以面向对象的方式处理JavaScript的基本类型。通过理解这些类型的工作原理,开发者可以在编写代码时更好地利用它们的功能。
2019-09-02 上传
2021-10-12 上传
2021-09-04 上传
2021-08-07 上传
2022-02-19 上传
2021-08-19 上传
2021-09-09 上传
2022-01-09 上传
2022-01-29 上传
13572025090
- 粉丝: 723
- 资源: 313
最新资源
- 火炬连体网络在MNIST的2D嵌入实现示例
- Angular插件增强Application Insights JavaScript SDK功能
- 实时三维重建:InfiniTAM的ros驱动应用
- Spring与Mybatis整合的配置与实践
- Vozy前端技术测试深入体验与模板参考
- React应用实现语音转文字功能介绍
- PHPMailer-6.6.4: PHP邮件收发类库的详细介绍
- Felineboard:为猫主人设计的交互式仪表板
- PGRFileManager:功能强大的开源Ajax文件管理器
- Pytest-Html定制测试报告与源代码封装教程
- Angular开发与部署指南:从创建到测试
- BASIC-BINARY-IPC系统:进程间通信的非阻塞接口
- LTK3D: Common Lisp中的基础3D图形实现
- Timer-Counter-Lister:官方源代码及更新发布
- Galaxia REST API:面向地球问题的解决方案
- Node.js模块:随机动物实例教程与源码解析