JavaScript 里的装车和开箱

lxf2023-05-09 00:43:06

序言

JavaScript 里的装车和开箱是一种与数据类型转换有关这个概念。在本文中,我们也会详细的讲解 JavaScript 里的装车和开箱,包含其界定、基本原理实例编码等,并陪你全面了解这一关键这个概念。

一、装车

1. 界定

装车(boxing)是指由一个基本上数据类型转换成其相对应的外包装对象类型的一个过程。在 JavaScript 中,有五种引用类型:Undefined、Null、Boolean、Number 和 String。对于这类引用类型,他们都是有相对应的外包装对象类型,分别为:Undefined、Null、Boolean、Number 和 String。

在 JavaScript 中,装车是自动完成的。换句话说,在我们对一个引用类型应用该类某个特性或方式时,JavaScript 模块会把该基本数据类型数值全自动转化成其相对应的外包装对象类型,然后启用该特性或方式。这一过程便是装车。

2. 实例编码

下边是一个装车的范例编码:

var num = 123;
var str = "hello";
console.log(typeof num); // "number"
console.log(typeof str); // "string"
num.toFixed(2); // 装车实际操作
str.toUpperCase(); // 装车实际操作

在后面的编码中,大家重新定义了一个数字类型的自变量 num 和一个字符串类型的自变量 str。随后,大家各自导出这俩变量的基本数据类型,能够看见它们是引用类型。然后,大家启用了 numtoFixed() 方法strtoUpperCase() 方式,这俩方式全是相匹配外包装对象类型的办法,因而 JavaScript 模块就会自动将 numstr 装车成其相对应的外包装对象类型,然后启用这俩方式。

二、开箱

1. 界定

开箱(unboxing)是指由一个封装目标数据转换成其相对应的引用类型的一个过程。在 JavaScript 中,有五种外包装对象类型:Undefined、Null、Boolean、Number 和 String。对于这类外包装对象类型,他们都是有相对应的引用类型,分别为:undefined、null、boolean、number 和 string。

在 JavaScript 中,开箱是自动完成的。换句话说,当我们将要一个外包装对象类型数值取值给一个引用类型的因素时,JavaScript 模块就会自动将这个外包装对象类型数值开箱成其相对应的引用类型,然后取值给该自变量。这一过程便是开箱。

2. 实例编码

下边是一个开箱的范例编码:

var numObj = new Number(123);
var strObj = new String("hello");
console.log(typeof numObj); // "object"
console.log(typeof strObj); // "object"
var num = numObj.valueOf(); // 开箱实际操作
var str = strObj.valueOf(); // 开箱实际操作
console.log(typeof num); // "number"
console.log(typeof str); // "string"

在后面的编码中,大家重新定义了一个数字类型产品的包装目标 numObj 和一个字符串类型产品的包装目标 strObj。随后,大家各自导出这俩变量的基本数据类型,能够看见它们是对象类型。然后,大家启用了 numObjvalueOf() 方法与 strObjvalueOf() 方式,这俩方式全是相匹配引用类型的办法,因而 JavaScript 模块就会自动将 numObjstrObj 开箱成其相对应的引用类型,然后取值给 numstr 自变量。

三、装车和开箱的使用

1. 应用一:类型判断

在 JavaScript 中,很多时候必须判断一个变量的类型,可以用 typeof 操作符。可是,针对外包装对象类型,应用 typeof 操作符会回到 "object",而非相对应的包装方式。此刻,我们就能运用装车和开箱的特点来判定一个变量的类型。

function isNumber(value) {
  return typeof value === "number" || value instanceof Number;
}

console.log(isNumber(123)); // true
console.log(isNumber(new Number(123))); // true

在后面的编码中,大家重新定义了一个 isNumber() 函数公式,用以判断一个值是否属于数据。这一函数公式采用了两种形式来判定:一种是应用 typeof 操作符来判定,另一种是应用 instanceof 操作符来判定。在其中,应用 instanceof 操作符需要把外包装对象类型开箱成其相对应的引用类型。

2. 运用二:数据转换

在 JavaScript 中,很多时候需要把一个值从一种数据转换成另一种类别,可以用装车和开箱来达到。

var num = 123;
var str = String(num); // 装车实际操作
console.log(typeof str); // "string"
var bool = Boolean(num); // 装车实际操作
console.log(typeof bool); // "boolean"
var num2 = Number(str); // 开箱实际操作
console.log(typeof num2); // "number"

在后面的编码中,大家重新定义了一个数字类型的自变量 num。随后,使用 String()Boolean() 函数公式将 num 装车成字符串类型和布尔类型。然后,使用 Number() 函数公式将字符串类型的 str 开箱成数字类型。

四、汇总

装车和开箱是 JavaScript 中的关键数据类型转换定义。装车是把基本上数据类型转换成外包装对象类型,开箱是把外包装目标数据转换成引用类型。在 JavaScript 中,这几种变换是自动完成的,我们可以使用他们来达到一些常见的实际操作,例如类型判断和数据转换。

本站是一个以CSS、JavaScript、Vue、HTML为中心的前端开发技术网址。我们的使命是为众多前端工程师者提供全方位、全方位、好用的前端工程师专业知识和技术服务。 在网站上,大家可以学到最新前端开发技术,掌握前端工程师最新发布的趋势和良好实践。大家提供大量实例教程和实例,让大家可以快速上手前端工程师的关键技术和程序。 本站还提供了一系列好用的工具软件,帮助你更高效地开展前端工程师工作中。公司提供的一种手段和软件都要经过精心策划和改进,能够帮助你节约时间精力,提高研发效率。 此外,本站还拥有一个有活力的小区,你可以在社区里与其它前端工程师者沟通交流技术性、交流经验、处理问题。我们坚信,街道的能量能够帮助你能够更好地进步与成长。 在网站上,大家可以寻找你需要的一切前端工程师网络资源,使您成为一名更加出色的网页开发者。欢迎你添加我们的大家庭,一起探索前端工程师的无限潜能!